X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fsettingsaction.php;h=14e89c2e4d2b7056963b04ea9e3ef169a01fd897;hb=61487d4cd0d85a24a2c4737fa90bfe71cb967212;hp=fad6abaf1293a53d780b49de5149cad459500d82;hpb=ae40dfe842c034263a49e2dbbde5c19ac9515c19;p=quix0rs-gnu-social.git diff --git a/lib/settingsaction.php b/lib/settingsaction.php index fad6abaf12..14e89c2e4d 100644 --- a/lib/settingsaction.php +++ b/lib/settingsaction.php @@ -24,8 +24,14 @@ class SettingsAction extends Action { function handle($args) { parent::handle($args); if (!common_logged_in()) { - common_user_error(_t('Not logged in.')); + common_user_error(_('Not logged in.')); return; + } else if (!common_is_real_login()) { + # Cookie theft means that automatic logins can't + # change important settings or see private info, and + # _all_ our settings are important + common_set_returnto($this->self_url()); + common_redirect(common_local_url('login')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handle_post(); } else { @@ -49,12 +55,37 @@ class SettingsAction extends Action { } } + function form_header($title, $msg=NULL, $success=false) { + common_show_header($title, + NULL, + array($msg, $success), + array($this, 'show_top')); + } + + function show_top($arr) { + $msg = $arr[0]; + $success = $arr[1]; + if ($msg) { + $this->message($msg, $success); + } else { + $inst = $this->get_instructions(); + $output = common_markup_to_html($inst); + common_element_start('div', 'instructions'); + common_raw($output); + common_element_end('div'); + } + $this->settings_menu(); + } + function settings_menu() { # action => array('prompt', 'title') static $menu = - array('profilesettings' => - array('Profile', + array('profilesettings' => + array('Profile', 'Change your profile settings'), + 'emailsettings' => + array('Email', + 'Change email handling'), 'avatar' => array('Avatar', 'Upload a new profile image'), @@ -62,18 +93,19 @@ class SettingsAction extends Action { array('Password', 'Change your password'), 'openidsettings' => - array('OpenID', + array('OpenID', 'Add or remove OpenIDs'), 'imsettings' => array('IM', 'Updates by instant messenger (IM)')); - + $action = $this->trimmed('action'); common_element_start('ul', array('id' => 'nav_views')); foreach ($menu as $menuaction => $menudesc) { common_menu_item(common_local_url($menuaction), - _t($menudesc[0]), - _t($menudesc[1])); + _($menudesc[0]), + _($menudesc[1]), + $action == $menuaction); } common_element_end('ul'); }