X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fopenid%2Fopenid.inc.php;h=4a55439a8c4d777a974fc73bfd271f3a6b69d7fd;hb=40565fa2f8bd3c20646f194b36c893cb3696f3c2;hp=669eccf4c847c1d98a38ead5f27aa8c198602652;hpb=a1af4a99268336a0cbdc29c612d49b865e18bc0a;p=platal.git diff --git a/modules/openid/openid.inc.php b/modules/openid/openid.inc.php index 669eccf..4a55439 100644 --- a/modules/openid/openid.inc.php +++ b/modules/openid/openid.inc.php @@ -48,6 +48,27 @@ function get_user($x) { } +function get_user_by_alias($x) { + if (is_null($x)) { + return null; + } + // 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 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); + } + return $user ? $user : null; + +} + function get_user_openid_url($user) { if (is_null($user)) { @@ -57,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)) { @@ -66,8 +93,38 @@ function get_user_xrds_url($user) return $globals->baseurl . '/openid/user_xrds/' . $user->hruid; } +function get_sreg_data($user) +{ + if (is_null($user)) { + return null; + } + return array('fullname' => $user->fullName(), + 'nickname' => $user->displayName(), + 'dob' => null, + 'email' => $user->bestEmail(), + 'gender' => $user->isFemale() ? 'F' : 'M', + 'postcode' => null, + 'country' => null, + 'language' => null, + '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