diff options
author | fabrixxm <fabrix.xm@gmail.com> | 2010-12-23 21:52:51 +0100 |
---|---|---|
committer | fabrixxm <fabrix.xm@gmail.com> | 2010-12-23 21:52:51 +0100 |
commit | 68868fd74bbc6a6f2268b6c5467ccf9e025af011 (patch) | |
tree | 9d85e01ea95e1c036ab24f6de7a7397c56461b2b /mod | |
parent | e47a816a8fd50f5fcec51652ada223773ddad11f (diff) | |
download | volse-hubzilla-68868fd74bbc6a6f2268b6c5467ccf9e025af011.tar.gz volse-hubzilla-68868fd74bbc6a6f2268b6c5467ccf9e025af011.tar.bz2 volse-hubzilla-68868fd74bbc6a6f2268b6c5467ccf9e025af011.zip |
OpenID delegation degrade gracefully if database table is not updated.
Diffstat (limited to 'mod')
-rw-r--r-- | mod/profile.php | 32 | ||||
-rw-r--r-- | mod/settings.php | 7 |
2 files changed, 22 insertions, 17 deletions
diff --git a/mod/profile.php b/mod/profile.php index 000e955ea..a5f440f43 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -20,24 +20,24 @@ function profile_init(&$a) { if (!get_config('system','no_openid') && $a->profile['openid']!=""){ if (!isset($a->profile['openidserver'])){ - die('friendika user table must be updated. `openidserver` field is missing'); - } - if ($a->profile['openidserver']==''){ - require_once('library/openid.php'); - $openid = new LightOpenID; - $openid->identity = $a->profile['openid']; - $a->profile['openidserver'] = $openid->discover($openid->identity); - - q("UPDATE `user` SET `openidserver` = '%s' WHERE `uid` = %d LIMIT 1", - dbesc($a->profile['openidserver']), - intval($a->profile['uid']) - ); - } + logger('friendika user table must be updated. `openidserver` field is missing'); + } else { + if ($a->profile['openidserver']==''){ + require_once('library/openid.php'); + $openid = new LightOpenID; + $openid->identity = $a->profile['openid']; + $a->profile['openidserver'] = $openid->discover($openid->identity); + + q("UPDATE `user` SET `openidserver` = '%s' WHERE `uid` = %d LIMIT 1", + dbesc($a->profile['openidserver']), + intval($a->profile['uid']) + ); + } - $a->page['htmlhead'] .= '<link rel="openid.server" href="'.$a->profile['openidserver'].'" />'. "\r\n"; - $a->page['htmlhead'] .= '<link rel="openid.delegate" href="'.$a->profile['openid'].'" />'. "\r\n"; - + $a->page['htmlhead'] .= '<link rel="openid.server" href="'.$a->profile['openidserver'].'" />'. "\r\n"; + $a->page['htmlhead'] .= '<link rel="openid.delegate" href="'.$a->profile['openid'].'" />'. "\r\n"; + } } diff --git a/mod/settings.php b/mod/settings.php index 4743ecd66..af826c53b 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -109,7 +109,12 @@ function settings_post(&$a) { $str_group_deny = perms2str($_POST['group_deny']); $str_contact_deny = perms2str($_POST['contact_deny']); - $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d WHERE `uid` = %d LIMIT 1", + $openidserver=""; + if ($openid != $a->user['openid'] && isset($a->user['openidserver'])){ + $openidserver = ", `openidserver` = ''"; + } + + $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d".$openidserver." WHERE `uid` = %d LIMIT 1", dbesc($username), dbesc($email), dbesc($openid), |