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 .= '

' . t('Plugin Settings') . '

'; + $o .= ''; + + $o .= '
'; + + $r = q("SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' "); + if(! count($r)) + notice( t('No Plugin settings configured') . EOL); + + call_hooks('plugin_settings', $o); + $o .= '
'; + return $o; + } + + require_once('include/acl_selectors.php'); $p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", - intval($_SESSION['uid']) + intval(local_user()) ); if(count($p)) $profile = $p[0]; @@ -177,6 +214,8 @@ function settings_content(&$a) { $timezone = $a->user['timezone']; $notify = $a->user['notify-flags']; $defloc = $a->user['default-location']; + $openid = $a->user['openid']; + $maxreq = $a->user['maxreq']; if(! strlen($a->user['timezone'])) $timezone = date_default_timezone_get(); @@ -193,6 +232,17 @@ function settings_content(&$a) { '$page_freelove' => PAGE_FREELOVE )); + $noid = get_config('system','no_openid'); + + if($noid) { + $oidhtml = ''; + } + else { + $oidhtml = '' . t(" \x28Optional\x29 Allow this OpenID to login to this account."); + } + + + $opt_tpl = load_view_file("view/profile-in-directory.tpl"); $profile_in_dir = replace_macros($opt_tpl,array( @@ -246,7 +296,7 @@ function settings_content(&$a) { $nickname_block = replace_macros($nickname_block,array( '$nickname' => $nickname, - '$uid' => $_SESSION['uid'], + '$uid' => local_user(), '$subdir' => $nickname_subdir, '$basepath' => $a->get_hostname(), '$baseurl' => $a->get_baseurl())); @@ -257,8 +307,10 @@ function settings_content(&$a) { $o .= replace_macros($stpl,array( '$baseurl' => $a->get_baseurl(), - '$uid' => $_SESSION['uid'], + '$oidhtml' => $oidhtml, + '$uid' => local_user(), '$username' => $username, + '$openid' => $openid, '$email' => $email, '$nickname_block' => $nickname_block, '$timezone' => $timezone, @@ -275,10 +327,16 @@ function settings_content(&$a) { '$sel_notify3' => (($notify & NOTIFY_WALL) ? ' checked="checked" ' : ''), '$sel_notify4' => (($notify & NOTIFY_COMMENT) ? ' checked="checked" ' : ''), '$sel_notify5' => (($notify & NOTIFY_MAIL) ? ' checked="checked" ' : ''), + '$maxreq' => $maxreq, '$theme' => $theme_selector, '$pagetype' => $pagetype )); + call_hooks('settings_form',$o); + + $o .= '' . "\r\n"; + return $o; -}} \ No newline at end of file +}} +