<?php //>
/*
Example - basic admin page for twzAuth "extended" mode
------------------------------------------------------
This script allows admin users to add / delete users, and change their passwords.
Enter a username (and optionally a password) in the text box, then select action:
User info .... displays all settings for the specified username
Add user ..... adds a new user with the specified username. If no password
is specified a random one will be generated.
Edit user .... changes the password for the specified user. If no password
is specified a random one will be generated.
Delete user .. deletes the specified user.
NOTE: nothing stops you from deleting your own username,
but ->setAdmin() in the include file will re-create it
with the original password
To use custom fields, you will need to add the appropriate form fields and POST
checks, and call addUser() / editUser() with all relevant fields.
*/
// clumsy "logout" (for testing only)..
if(isset($_POST['logout'])) { unset($_SERVER['PHP_AUTH_USER']); }
require 'extended-include.php';
// must be admin..
if(!$auth->isAdmin())
{ header('location:./'); }
$Message=''; $Error='';
// check POST..
if($_POST)
{
$TheUser=(isset($_POST['username'])) ? trim($_POST['username']) : '';
$ThePassword=(isset($_POST['password'])) ? trim($_POST['password']) : '';
if(isset($_POST['edit']))
{
if($auth->editUser($TheUser, $ThePassword))
{ $Message='Password for '.$TheUser.' changed to '.$auth->newPassword();}
}
elseif(isset($_POST['add']))
{
if($auth->addUser($TheUser, $ThePassword))
{ $Message='User '.$TheUser.' added with password '.$auth->newPassword(); }
}
elseif(isset($_POST['delete']))
{
if($auth->deleteUser($TheUser))
{ $Message='User '.$TheUser.' deleted'; }
}
elseif(isset($_POST['info']))
{
$Info = $auth->getUserInfo($TheUser);
if($Info)
{
$Info['Added']=date('j M Y H:i:s', $Info['Added']);
$Info['Updated']=date('j M Y H:i:s', $Info['Updated']);
echo '<pre>'; print_r($Info); echo '</pre>';
}
}
}
$Error=$auth->lastError();
?><!DOCTYPE HTML>
<html lang="en">
<head>
<title>twzAuth (extended mode) admin</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style>
div#users ul { list-style:none; margin:0; }
div#users ul li { float:left; margin:2px 10px; padding:1px 5px; background:#ddd; }
form, div#users { float:left; clear:left; border:1px solid #ccc; padding:10px; margin-top:20px; width:450px; }
form + * { clear:left; margin-top:50px; }
div#buttons { text-align:right; padding-top:15px; }
input[type=text] { width:130px; }
div#msg { color:#084; font-weight:bold; } div#err { color:#d60; font-weight:bold; }
</style>
</head>
<body>
<h2>Welcome <?php echo $Username; ?></h2>
<?php
if($Error) { echo '<div id="err">'.$Error.'</div>'; }
if($Message) { echo '<div id="msg">'.$Message.'</div>'; }
$UserList=$auth->getUsernames();
if($UserList)
{
echo '<div id="users">Current usernames:';
echo '<ul>';
foreach($UserList as $User)
{ echo '<li>'.$User.'</li>'; }
echo '</ul></div>';
}
?>
<form method="post">
<label for="username">Username</label> <input type="text" id="username" name="username" value="" />
<label for="password">Password</label> <input type="text" id="password" name="password" value="" />
<div id="buttons">
<input type="submit" name="logout" value=""logout"" style="float:left;" />
<input type="submit" name="info" value="User info" />
<input type="submit" name="add" value="Add user" />
<input type="submit" name="edit" value="Edit user" />
<input type="submit" name="delete" value="Delete user" onclick="return confirm('Are you really sure?');" />
</div>
</form>
<p> </p>
<?php
if(isset($_GET['showlist']) and 'yes'==$_GET['showlist'])
{
echo '<p><a href="?showlist=no">Hide user info</a></p>';
echo '<p>All user info:</p>';
$usr=$auth->getUsers();
foreach($usr as $idx=>$info)
{
$usr[$idx]['Added']=date('j M Y H:i:s', $info['Added']);
$usr[$idx]['Updated']=date('j M Y H:i:s', $info['Updated']);
}
echo '<pre>'; print_r($usr); echo '</pre>';
}
else
{ echo '<p><a href="?showlist=yes">Show all user info</a></p>'; }
?>
<p><a href="./">home</a></p>
</body>
</html>
|