X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fsettings.php;h=273e8baa827874b1f1cb51295f58e9a407bc2faf;hb=bf60ec070bb5af0eb1d37772cfdacda4f9c39a19;hp=0687a498f2cdcea785d2e2c7b481d14854f64e9e;hpb=0851669b39db770e62374551c9394f0f3a652314;p=friendica.git diff --git a/mod/settings.php b/mod/settings.php index 0687a498f2..273e8baa82 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -3,7 +3,6 @@ function settings_init(&$a) { if(local_user()) { - require_once("mod/profile.php"); profile_load($a,$a->user['nickname']); } } @@ -15,6 +14,12 @@ function settings_post(&$a) { notice( t('Permission denied.') . EOL); return; } + + call_hooks('settings_post', $_POST); + + if(($a->argc > 1) && ($a->argv[1] == 'addon')) + return; + if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) { notice( t('Permission denied.') . EOL); return; @@ -48,29 +53,31 @@ function settings_post(&$a) { } } - $theme = notags(trim($_POST['theme'])); - $username = notags(trim($_POST['username'])); - $email = notags(trim($_POST['email'])); - $timezone = notags(trim($_POST['timezone'])); - $defloc = notags(trim($_POST['defloc'])); + $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : ''); + $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : ''); + $email = ((x($_POST,'email')) ? notags(trim($_POST['email'])) : ''); + $timezone = ((x($_POST,'timezone')) ? notags(trim($_POST['timezone'])) : ''); + $defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : ''); + $openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : ''); + $maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0); - $allow_location = (($_POST['allow_location'] == 1) ? 1: 0); - $publish = (($_POST['profile_in_directory'] == 1) ? 1: 0); - $net_publish = (($_POST['profile_in_netdirectory'] == 1) ? 1: 0); - $old_visibility = ((intval($_POST['visibility']) == 1) ? 1 : 0); - $page_flags = ((intval($_POST['page-flags'])) ? intval($_POST['page-flags']) : 0); + $allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0); + $publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0); + $net_publish = (((x($_POST,'profile_in_netdirectory')) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0); + $old_visibility = (((x($_POST,'visibility')) && (intval($_POST['visibility']) == 1)) ? 1 : 0); + $page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0); $notify = 0; - if($_POST['notify1']) + if(x($_POST,'notify1')) $notify += intval($_POST['notify1']); - if($_POST['notify2']) + if(x($_POST,'notify2')) $notify += intval($_POST['notify2']); - if($_POST['notify3']) + if(x($_POST,'notify3')) $notify += intval($_POST['notify3']); - if($_POST['notify4']) + if(x($_POST,'notify4')) $notify += intval($_POST['notify4']); - if($_POST['notify5']) + if(x($_POST,'notify5')) $notify += intval($_POST['notify5']); $email_changed = false; @@ -105,9 +112,22 @@ 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', `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' WHERE `uid` = %d LIMIT 1", + $openidserver = $a->user['openidserver']; + + // If openid has changed or if there's an openid but no openidserver, try and discover it. + + if($openid != $a->user['openid'] || (strlen($openid) && (! strlen($openidserver)))) { + logger('updating openidserver'); + require_once('library/openid.php'); + $open_id_obj = new LightOpenID; + $open_id_obj->identity = $openid; + $openidserver = $open_id_obj->discover($open_id_obj->identity); + } + + $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` = '%s' WHERE `uid` = %d LIMIT 1", dbesc($username), dbesc($email), + dbesc($openid), dbesc($timezone), dbesc($str_contact_allow), dbesc($str_group_allow), @@ -118,6 +138,8 @@ function settings_post(&$a) { dbesc($defloc), intval($allow_location), dbesc($theme), + intval($maxreq), + dbesc($openidserver), intval(local_user()) ); if($r) @@ -163,10 +185,25 @@ function settings_content(&$a) { return; } - require_once('view/acl_selectors.php'); + if(($a->argc > 1) && ($a->argv[1] === 'addon')) { + $o .= '