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: ?>