give the ACP a login screen

git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8581 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Henry Sudhof 2008-06-02 17:15:43 +00:00
parent 8039c37b51
commit d0cd2152ff
5 changed files with 100 additions and 11 deletions

View file

@ -28,10 +28,14 @@ $user->setup('acp/common');
// End session management // End session management
// Have they authenticated (again) as an admin for this session? // 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); 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 // Is user any type of admin? No, then stop here, each script needs to
// check specific permissions but this is a catchall // check specific permissions but this is a catchall
@ -108,7 +112,7 @@ function adm_page_header($page_title)
$template->assign_vars(array( $template->assign_vars(array(
'PAGE_TITLE' => $page_title, 'PAGE_TITLE' => $page_title,
'USERNAME' => $user->data['username'], 'USERNAME' => ($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '',
'SID' => $SID, 'SID' => $SID,
'_SID' => $_SID, '_SID' => $_SID,
@ -120,6 +124,9 @@ function adm_page_header($page_title)
'U_ADM_INDEX' => append_sid("{$phpbb_admin_path}index.$phpEx"), 'U_ADM_INDEX' => append_sid("{$phpbb_admin_path}index.$phpEx"),
'U_INDEX' => append_sid("{$phpbb_root_path}index.$phpEx"), 'U_INDEX' => append_sid("{$phpbb_root_path}index.$phpEx"),
'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_IMAGES_PATH' => "{$phpbb_root_path}images/",
'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/", 'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/",
'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/", 'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/",

46
phpBB/adm/style/acp_login.html Executable file
View file

@ -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 -->
&nbsp;
{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" class="button1" />
</p>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View file

@ -186,6 +186,7 @@ function switch_menu()
<!-- ENDIF --> <!-- ENDIF -->
<div id="menu"> <div id="menu">
<p><!-- IF S_USER_LOGGED_IN --> {L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;]<!-- ENDIF --><!-- IF S_USER_ADMIN -->[&nbsp;<a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a>&nbsp;]<!-- ENDIF --></p> <p><!-- IF S_USER_LOGGED_IN --> {L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;]<!-- ENDIF --><!-- IF S_USER_ADMIN -->[&nbsp;<a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a>&nbsp;]<!-- ENDIF --></p>
<!-- IF S_USER_ADMIN -->
<ul> <ul>
<!-- BEGIN l_block1 --> <!-- BEGIN l_block1 -->
<!-- IF l_block1.S_SELECTED --> <!-- IF l_block1.S_SELECTED -->
@ -203,6 +204,7 @@ function switch_menu()
<!-- ENDIF --> <!-- ENDIF -->
<!-- END l_block1 --> <!-- END l_block1 -->
</ul> </ul>
<!-- ENDIF -->
</div> </div>
<div id="main"> <div id="main">

View file

@ -110,6 +110,7 @@
<li>[Change] Show email ban reason on registration. Additionally allow custom errors properly returned if using validate_data(). (Bug #26885)</li> <li>[Change] Show email ban reason on registration. Additionally allow custom errors properly returned if using validate_data(). (Bug #26885)</li>
<li>[Feature] Streamlined banning via the MCP by adding a ban link to the user profile. Also pre-fills ban fields as far as possible.</li> <li>[Feature] Streamlined banning via the MCP by adding a ban link to the user profile. Also pre-fills ban fields as far as possible.</li>
<li>[Feature] Added ACP logout to reset an admin session.</li> <li>[Feature] Added ACP logout to reset an admin session.</li>
<li>[Feature] Handle ACP logins with admin style</li>
</ul> </ul>

View file

@ -2234,7 +2234,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
*/ */
function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true) function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = false, $s_display = true)
{ {
global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $config; global $db, $user, $template, $auth, $phpEx, $phpbb_root_path, $phpbb_admin_path, $config;
$err = ''; $err = '';
@ -2244,6 +2244,16 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
$user->setup(); $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... // Print out error if user tries to authenticate as an administrator without having the privileges...
if ($admin && !$auth->acl_get('a_')) if ($admin && !$auth->acl_get('a_'))
{ {
@ -2447,20 +2457,43 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_ADMIN_AUTH' => $admin, 'S_ADMIN_AUTH' => $admin,
'S_ACP_LOGIN' => defined('ADMIN_START'),
'USERNAME' => ($admin) ? $user->data['username'] : '', 'USERNAME' => ($admin) ? $user->data['username'] : '',
'USERNAME_CREDENTIAL' => 'username', 'USERNAME_CREDENTIAL' => 'username',
'PASSWORD_CREDENTIAL' => ($admin) ? 'password_' . $credential : 'password', 'PASSWORD_CREDENTIAL' => ($admin) ? 'password_' . $credential : 'password',
)); ));
page_header($user->lang['LOGIN'], false); 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);
}
$template->set_filenames(array(
'body' => 'login_body.html')
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx")); make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
if (defined('ADMIN_START') && isset($user->data['session_admin']) && $user->data['session_admin'])
{
adm_page_footer();
}
else
{
page_footer();
}
page_footer();
} }
/** /**