redirect to profile page after first login; informational banner when password is blank; do not enforce password change; rename Home -> Dashboard

This commit is contained in:
Evgeny Gryaznov 2011-04-15 01:24:33 +02:00 committed by Fedor A. Fetisov
parent 84f37eb14c
commit 6e239bbf0f
7 changed files with 39 additions and 12 deletions

View File

@ -124,6 +124,8 @@ errors.prefix=<li class="error">
errors.required=Please fill "{0}". errors.required=Please fill "{0}".
errors.suffix=</li> errors.suffix=</li>
errors.wrong_field=Please fill "{0}" correctly. errors.wrong_field=Please fill "{0}" correctly.
error.no_password=This is your first time logging in and your password is blank. For security reasons you have to change it.
error.no_password.visit_profile=Visit your <a href="{0}">Profile Page</a>.
features.saved=Features activated features.saved=Features activated
form.field.address.description=Ex: 12.23.45.123 or todo.com form.field.address.description=Ex: 12.23.45.123 or todo.com
form.field.address=Visitor's Address form.field.address=Visitor's Address
@ -512,9 +514,9 @@ time.never=Never
time.timeformat=%I:%M %p time.timeformat=%I:%M %p
time.today.at=Today at time.today.at=Today at
time.yesterday.at=Yesterday at time.yesterday.at=Yesterday at
topMenu.admin=Home topMenu.admin=Dashboard
topMenu.logoff=Exit topMenu.logoff=Exit
topMenu.main=Home topMenu.main=Dashboard
topMenu.users.nomenu=without menu topMenu.users.nomenu=without menu
topMenu.users=Visitors topMenu.users=Visitors
tracked.date=Visit time tracked.date=Visit time

View File

@ -33,6 +33,8 @@ $page = array(
'version' => $version, 'version' => $version,
'localeLinks' => get_locale_links("$webimroot/operator/index.php"), 'localeLinks' => get_locale_links("$webimroot/operator/index.php"),
'needUpdate' => $settings['dbversion'] != $dbversion, 'needUpdate' => $settings['dbversion'] != $dbversion,
'needChangePassword' => $operator['vcpassword'] == md5(''),
'profilePage' => "$webimroot/operator/operator.php?op=".$operator['operatorid'],
'updateWizard' => "$webimroot/install/", 'updateWizard' => "$webimroot/install/",
'newFeatures' => $settings['featuresversion'] != $featuresversion, 'newFeatures' => $settings['featuresversion'] != $featuresversion,
'featuresPage' => "$webimroot/operator/features.php", 'featuresPage' => "$webimroot/operator/features.php",

View File

@ -33,9 +33,11 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
$operator = operator_by_login($login); $operator = operator_by_login($login);
if ($operator && isset($operator['vcpassword']) && $operator['vcpassword'] == md5($password)) { if ($operator && isset($operator['vcpassword']) && $operator['vcpassword'] == md5($password)) {
$target = isset($_SESSION['backpath']) $target = $password == ''
? "$webimroot/operator/operator.php?op=" . $operator['operatorid']
: (isset($_SESSION['backpath'])
? $_SESSION['backpath'] ? $_SESSION['backpath']
: "$webimroot/operator/index.php"; : "$webimroot/operator/index.php");
login_operator($operator, $remember); login_operator($operator, $remember);
header("Location: $target"); header("Location: $target");

View File

@ -77,6 +77,15 @@ if (isset($_POST['login']) && isset($_POST['password'])) {
exit; exit;
} else { } else {
update_operator($opId, $login, $email, $password, $localname, $commonname); update_operator($opId, $login, $email, $password, $localname, $commonname);
// update the session password
if (isset($password) && $opId == $operator['operatorid']) {
$toDashboard = $operator['vcpassword'] == md5('') && $password != '';
$_SESSION["${mysqlprefix}operator"]['vcpassword'] = md5($password);
if($toDashboard) {
header("Location: $webimroot/operator/index.php");
exit;
}
}
header("Location: $webimroot/operator/operator.php?op=$opId&stored"); header("Location: $webimroot/operator/operator.php?op=$opId&stored");
exit; exit;
} }
@ -113,6 +122,7 @@ $canmodify = ($opId == $operator['operatorid'] && is_capable($can_modifyprofile,
$page['stored'] = isset($_GET['stored']); $page['stored'] = isset($_GET['stored']);
$page['canmodify'] = $canmodify ? "1" : ""; $page['canmodify'] = $canmodify ? "1" : "";
$page['needChangePassword'] = $operator['vcpassword'] == md5('');
prepare_menu($operator); prepare_menu($operator);
setup_operator_settings_tabs($opId, 0); setup_operator_settings_tabs($opId, 0);

View File

@ -24,6 +24,8 @@ require_once('../libs/operator.php');
require_once('../libs/groups.php'); require_once('../libs/groups.php');
$operator = check_login(); $operator = check_login();
force_password($operator);
$status = isset($_GET['away']) ? 1 : 0; $status = isset($_GET['away']) ? 1 : 0;
notify_operator_alive($operator['operatorid'], $status); notify_operator_alive($operator['operatorid'], $status);

View File

@ -39,15 +39,20 @@ function tpl_content() { global $page, $webimroot, $errors;
<?php <?php
require_once('inc_errors.php'); require_once('inc_errors.php');
?> ?>
<?php if( $page['stored'] ) { ?> <?php if( $page['needChangePassword'] ) { ?>
<div id="formmessage"><?php echo getlocal("error.no_password") ?></div>
<br/>
<?php } else if( $page['stored'] ) { ?>
<div id="formmessage"><?php echo getlocal("data.saved") ?></div> <div id="formmessage"><?php echo getlocal("data.saved") ?></div>
<?php } ?> <?php } ?>
<?php if( $page['opid'] || $page['canmodify'] ) { ?> <?php if( $page['opid'] || $page['canmodify'] ) { ?>
<form name="agentForm" method="post" action="<?php echo $webimroot ?>/operator/operator.php"> <form name="agentForm" method="post" action="<?php echo $webimroot ?>/operator/operator.php">
<input type="hidden" name="opid" value="<?php echo $page['opid'] ?>"/> <input type="hidden" name="opid" value="<?php echo $page['opid'] ?>"/>
<div> <div>
<?php print_tabbar(); ?> <?php if(!$page['needChangePassword']) { print_tabbar(); } ?>
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner"> <div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
<div class="fieldForm"> <div class="fieldForm">
@ -70,7 +75,7 @@ require_once('inc_errors.php');
</div> </div>
<div class="field"> <div class="field">
<div class="flabel"><?php echo getlocal('form.field.password') ?><?php if( !$page['opid'] ) { ?><span class="required">*</span><?php } ?></div> <div class="flabel"><?php echo getlocal('form.field.password') ?><?php if( !$page['opid'] || $page['needChangePassword'] ) { ?><span class="required">*</span><?php } ?></div>
<div class="fvalue"> <div class="fvalue">
<input type="password" name="password" size="40" value="" class="formauth"<?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/> <input type="password" name="password" size="40" value="" class="formauth"<?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/>
</div> </div>
@ -79,7 +84,7 @@ require_once('inc_errors.php');
</div> </div>
<div class="field"> <div class="field">
<div class="flabel"><?php echo getlocal('form.field.password_confirm') ?><?php if( !$page['opid'] ) { ?><span class="required">*</span><?php } ?></div> <div class="flabel"><?php echo getlocal('form.field.password_confirm') ?><?php if( !$page['opid'] || $page['needChangePassword'] ) { ?><span class="required">*</span><?php } ?></div>
<div class="fvalue"> <div class="fvalue">
<input type="password" name="passwordConfirm" size="40" value="" class="formauth"<?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/> <input type="password" name="passwordConfirm" size="40" value="" class="formauth"<?php echo $page['canmodify'] ? "" : " disabled=\"disabled\"" ?>/>
</div> </div>

View File

@ -42,7 +42,11 @@ function tpl_content() { global $page, $webimroot, $current_locale, $menuItemsCo
?> ?>
<br/> <br/>
<?php if( $page['needUpdate'] ) { ?>
<?php if( $page['needChangePassword'] ) { ?>
<div id="formmessage"><?php echo getlocal("error.no_password") ?> <?php echo getlocal2("error.no_password.visit_profile", array($page['profilePage'])) ?></div>
<br/>
<?php } else if( $page['needUpdate'] ) { ?>
<div id="formmessage"><?php echo getlocal2("install.updatedb",array($page['updateWizard'])) ?></div> <div id="formmessage"><?php echo getlocal2("install.updatedb",array($page['updateWizard'])) ?></div>
<br/> <br/>
<?php } else if($page['newFeatures']) { ?> <?php } else if($page['newFeatures']) { ?>