X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fopenid%2Fopenid.inc.php;h=4a55439a8c4d777a974fc73bfd271f3a6b69d7fd;hb=efe597c5795234724bc3df508bd628f9860a9c32;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=b69727b412cae8449a78dee9ec79ddc70aab985f;p=platal.git diff --git a/modules/openid/openid.inc.php b/modules/openid/openid.inc.php index e69de29..4a55439 100644 --- a/modules/openid/openid.inc.php +++ b/modules/openid/openid.inc.php @@ -0,0 +1,130 @@ +baseurl . '/openid'; +} + +function get_user($x) { + if (is_null($x)) { + return null; + } + $user = User::getSilent($x); + return $user ? $user : null; + +} + +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)) { + return null; + } + global $globals; + 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)) { + return null; + } + global $globals; + 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