Use new cookie API.
[platal.git] / modules / openid / openid.inc.php
index 2ab06ff..4a55439 100644 (file)
@@ -55,9 +55,12 @@ function get_user_by_alias($x) {
     // TODO such a function should probably be provided in the User class
     // or at least not here
     $res = XDB::query('SELECT  u.user_id
-                         FROM  auth_user_md5 AS u
-                   INNER JOIN  aliases       AS a ON (a.id = u.user_id AND type != \'homonyme\')
-                        WHERE  a.alias = {?} AND u.perms IN(\'admin\', \'user\')',
+                         FROM  auth_user_md5   AS u
+                   INNER JOIN  auth_user_quick AS q USING(user_id)
+                   INNER JOIN  aliases         AS a ON (a.id = u.user_id AND type != \'homonyme\')
+                        WHERE  u.perms IN(\'admin\', \'user\')
+                          AND  q.emails_alias_pub = \'public\'
+                          AND  a.alias = {?}',
                                $x);
     if (list($uid) = $res->fetchOneRow()) {
         $user = User::getSilent($uid);
@@ -75,6 +78,12 @@ function get_user_openid_url($user)
     return $globals->baseurl . '/openid/' . $user->hruid;
 }
 
+function get_idp_xrds_url()
+{
+    global $globals;
+    return $globals->baseurl . '/openid/idp_xrds';
+}
+
 function get_user_xrds_url($user)
 {
     if (is_null($user)) {
@@ -100,6 +109,22 @@ function get_sreg_data($user)
                  'timezone' => null);
 }
 
+function is_trusted_site($user, $url)
+{
+    $res = XDB::query('SELECT  COUNT(*)
+                         FROM  openid_trusted
+                        WHERE  (user_id = {?} OR user_id IS NULL)
+                          AND  url = {?}',
+                               $user->id(), $url);
+    return $res->fetchOneCell() > 0;
+}
+
+function add_trusted_site($user, $url)
+{
+    XDB::execute("INSERT IGNORE INTO openid_trusted
+                      SET user_id={?}, url={?}",
+                  $user->id(), $url);
+}
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
 ?>
\ No newline at end of file