diff options
| author | Henry Sudhof <kellanved@phpbb.com> | 2008-06-03 16:33:02 +0000 |
|---|---|---|
| committer | Henry Sudhof <kellanved@phpbb.com> | 2008-06-03 16:33:02 +0000 |
| commit | 65fb840b761cb04d52bd03ef0d5ed20053ae16ba (patch) | |
| tree | fa273e401ee711a6c5250fbb6b3fec617495ac44 | |
| parent | 59e6bc27f1f1f91a5242074d216bc1f2de9fe45c (diff) | |
| download | forums-65fb840b761cb04d52bd03ef0d5ed20053ae16ba.tar forums-65fb840b761cb04d52bd03ef0d5ed20053ae16ba.tar.gz forums-65fb840b761cb04d52bd03ef0d5ed20053ae16ba.tar.bz2 forums-65fb840b761cb04d52bd03ef0d5ed20053ae16ba.tar.xz forums-65fb840b761cb04d52bd03ef0d5ed20053ae16ba.zip | |
merge
git-svn-id: file:///svn/phpbb/trunk@8587 89ea8834-ac86-4346-8a33-228a782c2dd0
| -rw-r--r-- | phpBB/adm/index.php | 12 | ||||
| -rwxr-xr-x | phpBB/adm/style/acp_login.html | 46 | ||||
| -rw-r--r-- | phpBB/adm/style/overall_header.html | 6 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_main.php | 9 | ||||
| -rw-r--r-- | phpBB/includes/functions.php | 58 | ||||
| -rw-r--r-- | phpBB/includes/session.php | 10 | ||||
| -rw-r--r-- | phpBB/language/en/acp/common.php | 4 |
7 files changed, 129 insertions, 16 deletions
diff --git a/phpBB/adm/index.php b/phpBB/adm/index.php index af5511f3b6..819e4a1a8f 100644 --- a/phpBB/adm/index.php +++ b/phpBB/adm/index.php @@ -28,10 +28,14 @@ $user->setup('acp/common'); // End session management // Have they authenticated (again) as an admin for this session? -if (!isset($user->data['session_admin']) || !$user->data['session_admin']) +if ($user->data['user_id'] != ANONYMOUS && (!isset($user->data['session_admin']) || !$user->data['session_admin'])) { login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS'], true, false); } +else if ($user->data['user_id'] == ANONYMOUS) +{ + login_box(''); +} // Is user any type of admin? No, then stop here, each script needs to // check specific permissions but this is a catchall @@ -108,7 +112,7 @@ function adm_page_header($page_title) $template->assign_vars(array( 'PAGE_TITLE' => $page_title, - 'USERNAME' => $user->data['username'], + 'USERNAME' => ($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '', 'SID' => $SID, '_SID' => $_SID, @@ -116,9 +120,13 @@ function adm_page_header($page_title) 'ROOT_PATH' => PHPBB_ADMIN_PATH, 'U_LOGOUT' => append_sid('ucp', 'mode=logout'), + 'U_ADM_LOGOUT' => append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, 'action=admlogout'), 'U_ADM_INDEX' => append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT), 'U_INDEX' => append_sid('index'), + 'S_USER_ADMIN' => $user->data['session_admin'], + 'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS && !$user->data['is_bot']), + 'T_IMAGES_PATH' => PHPBB_ROOT_PATH . 'images/', 'T_SMILIES_PATH' => PHPBB_ROOT_PATH . $config['smilies_path'] . '/', 'T_AVATAR_PATH' => PHPBB_ROOT_PATH . $config['avatar_path'] . '/', diff --git a/phpBB/adm/style/acp_login.html b/phpBB/adm/style/acp_login.html new file mode 100755 index 0000000000..015f3ec908 --- /dev/null +++ b/phpBB/adm/style/acp_login.html @@ -0,0 +1,46 @@ +<!-- INCLUDE overall_header.html --> +<h1>{PAGE_TITLE}</h1> +<p><!-- IF LOGIN_EXPLAIN -->{LOGIN_EXPLAIN}<!-- ELSE -->{L_LOGIN}<!-- ENDIF --></p> + +<!-- IF LOGIN_ERROR --> + <div class="errorbox"> + <h3>{L_WARNING}</h3> + <p>{LOGIN_ERROR}</p> + </div> +<!-- ENDIF --> +<form action="{S_LOGIN_ACTION}" method="post" id="login"> + + <fieldset> + <dl> + <dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt> + <dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd> + </dl> + <dl> + <dt><label for="{PASSWORD_CREDENTIAL}">{L_PASSWORD}:</label></dt> + <dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" /></dd> + <!-- IF S_DISPLAY_FULL_LOGIN and (U_SEND_PASSWORD or U_RESEND_ACTIVATION) --> + <!-- IF U_SEND_PASSWORD --><dd><a href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></dd><!-- ENDIF --> + <!-- IF U_RESEND_ACTIVATION --><dd><a href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a></dd><!-- ENDIF --> + <!-- ENDIF --> + </dl> + + <!-- IF S_CONFIRM_CODE --> + <dl> + <dt><label for="confirm_code">{L_CONFIRM_CODE}:</label><br /><span>{L_CONFIRM_CODE_EXPLAIN}</span></dt> + <dd><input type="hidden" name="confirm_id" value="{CONFIRM_ID}" />{CONFIRM_IMAGE}</dd> + <dd><input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" tabindex="3" class="inputbox narrow" title="{L_CONFIRM_CODE}" /></dd> + </dl> + <!-- ENDIF --> + + <p class="submit-buttons"> + <!-- IF S_DISPLAY_FULL_LOGIN --> + <!-- IF S_AUTOLOGIN_ENABLED --><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4" /> {L_LOG_ME_IN}</label><!-- ENDIF --> + <label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5" /> {L_HIDE_ME}</label> + <!-- ENDIF --> + + {S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" class="button1" /> + </p> + </fieldset> +</form> + +<!-- INCLUDE overall_footer.html --> diff --git a/phpBB/adm/style/overall_header.html b/phpBB/adm/style/overall_header.html index e883e66d80..adafc0aa6d 100644 --- a/phpBB/adm/style/overall_header.html +++ b/phpBB/adm/style/overall_header.html @@ -181,11 +181,12 @@ function switch_menu() <span class="corners-top"><span></span></span> <div id="content"> <!-- IF not S_USER_NOTICE --> - <div id="toggle"> + <div id="toggle"> <a id="toggle-handle" accesskey="m" title="{L_MENU_TOGGLE}" onclick="switch_menu(); return false;" href="#"></a></div> <!-- ENDIF --> <div id="menu"> - <p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ]</p> + <p><!-- IF S_USER_LOGGED_IN --> {L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ]<!-- ENDIF --><!-- IF S_USER_ADMIN -->[ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ]<!-- ENDIF --></p> + <!-- IF S_USER_ADMIN --> <ul> <!-- BEGIN l_block1 --> <!-- IF l_block1.S_SELECTED --> @@ -203,6 +204,7 @@ function switch_menu() <!-- ENDIF --> <!-- END l_block1 --> </ul> + <!-- ENDIF --> </div> <div id="main"> diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php index 3e24898908..d71fc8043d 100644 --- a/phpBB/includes/acp/acp_main.php +++ b/phpBB/includes/acp/acp_main.php @@ -60,6 +60,14 @@ class acp_main if ($action) { + if ($action === 'admlogout') + { + $user->unset_admin(); + $redirect_url = append_sid("{$phpbb_root_path}index.$phpEx"); + meta_refresh(3, $redirect_url); + trigger_error($user->lang['ADM_LOGGED_OUT'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . $redirect_url . '">', '</a>')); + } + if (!confirm_box(true)) { switch ($action) @@ -107,6 +115,7 @@ class acp_main { switch ($action) { + case 'online': if (!$auth->acl_get('a_board')) { diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index a61c1ed1a3..3a4a12777e 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2176,6 +2176,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true) { global $db, $user, $template, $auth, $config; + $err = ''; @@ -2184,6 +2185,16 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa { $user->setup(); } + + if (defined('ADMIN_START')) + { + // Set custom template for admin area + $template->set_custom_template(PHPBB_ADMIN_PATH . 'style', 'admin'); + $template->assign_var('T_TEMPLATE_PATH', PHPBB_ADMIN_PATH . 'style'); + + // the acp template is never stored in the database + $user->theme['template_storedb'] = false; + } // Print out error if user tries to authenticate as an administrator without having the privileges... if ($admin && !$auth->acl_get('a_')) @@ -2351,7 +2362,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa // If we are not within the admin directory we use the page dir... $redirect = ''; - if (!$admin) + if (!$admin && !defined('ADMIN_START')) { $redirect .= ($user->page['page_dir']) ? $user->page['page_dir'] . '/' : ''; } @@ -2384,24 +2395,47 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa 'U_PRIVACY' => append_sid('ucp', 'mode=privacy'), 'S_DISPLAY_FULL_LOGIN' => ($s_display) ? true : false, - 'S_LOGIN_ACTION' => (!$admin) ? append_sid('ucp', 'mode=login') : append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, false, true, $user->session_id), + 'S_LOGIN_ACTION' => (!$admin && !defined('ADMIN_START')) ? append_sid('ucp', 'mode=login') : append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, false, true, $user->session_id), 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_ADMIN_AUTH' => $admin, + 'S_ACP_LOGIN' => defined('ADMIN_START'), 'USERNAME' => ($admin) ? $user->data['username'] : '', 'USERNAME_CREDENTIAL' => 'username', 'PASSWORD_CREDENTIAL' => ($admin) ? 'password_' . $credential : 'password', )); - - page_header($user->lang['LOGIN'], false); - - $template->set_filenames(array( - 'body' => 'login_body.html') - ); + + if (defined('ADMIN_START')) + { + $template->set_filenames(array( + 'body' => 'acp_login.html') + ); + $template->assign_block_vars('t_block1', array( + 'L_TITLE' => $user->lang['LOGIN'], + 'S_SELECTED' => true, + 'U_TITLE' => '', + )); + adm_page_header($user->lang['LOGIN'], false); + } + else + { + $template->set_filenames(array( + 'body' => 'login_body.html') + ); + page_header($user->lang['LOGIN'], false); + } + make_jumpbox(append_sid('viewforum')); - - page_footer(); + if (defined('ADMIN_START') && isset($user->data['session_admin']) && $user->data['session_admin']) + { + adm_page_footer(); + } + else + { + page_footer(); + } + } /** @@ -3003,7 +3037,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline) if (!defined('HEADER_INC')) { - if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin']) + if (defined('ADMIN_START') || (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])) { adm_page_header($msg_title); } @@ -3027,7 +3061,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline) // We do not want the cron script to be called on error messages define('IN_CRON', true); - if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin']) + if (defined('ADMIN_START') || (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])) { adm_page_footer(); } diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 29d3ba584e..fedaba8559 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -1321,6 +1321,16 @@ class session } return true; } + + + function unset_admin() + { + global $db; + $sql = 'UPDATE ' . SESSIONS_TABLE . ' + SET session_admin = 0 + WHERE session_id = \'' . $db->sql_escape($this->session_id) . '\''; + $db->sql_query($sql); + } } diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 85c57fb1c3..41ade70855 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -201,6 +201,9 @@ $lang = array_merge($lang, array( 'ADMIN_INDEX' => 'Admin index', 'ADMIN_PANEL' => 'Administration Control Panel', + 'ADM_LOGOUT' => 'ACP Logout', + 'ADM_LOGGED_OUT' => 'Successfully logged out from Administration Control Panel', + 'BACK' => 'Back', 'COLOUR_SWATCH' => 'Web-safe colour swatch', @@ -236,6 +239,7 @@ $lang = array_merge($lang, array( 'LOOK_UP_FORUM' => 'Select a forum', 'LOOK_UP_FORUMS_EXPLAIN'=> 'You are able to select more than one forum.', + 'LOGIN_REDIRECT' => 'You have been successfully logged in.', 'MANAGE' => 'Manage', 'MENU_TOGGLE' => 'Hide or display the side menu', 'MOVE_DOWN' => 'Move down', |
