summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_usermanager.php
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2005-03-07 23:12:41 +0000
committerScott Ullrich <sullrich@pfsense.org>2005-03-07 23:12:41 +0000
commit9699028a571f1df9bd54799a8df0b97d03f6901b (patch)
tree44b7a6d30f21088895656ad7f0e9395c6f606f3a /usr/local/www/services_usermanager.php
parent90b7aa76dae8c8436f968d2cb47f25a1c52ef989 (diff)
downloadpfsense-9699028a571f1df9bd54799a8df0b97d03f6901b.zip
pfsense-9699028a571f1df9bd54799a8df0b97d03f6901b.tar.gz
Add local user manager code imported from Pascal Suter's m0n0wall developers group message.
Diffstat (limited to 'usr/local/www/services_usermanager.php')
-rwxr-xr-xusr/local/www/services_usermanager.php191
1 files changed, 191 insertions, 0 deletions
diff --git a/usr/local/www/services_usermanager.php b/usr/local/www/services_usermanager.php
new file mode 100755
index 0000000..fb7071a
--- /dev/null
+++ b/usr/local/www/services_usermanager.php
@@ -0,0 +1,191 @@
+#!/usr/local/bin/php
+<?php
+/*
+ services_usermanager.php
+ part of m0n0wall (http://m0n0.ch/wall)
+
+ Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+ Copyright (C) 2005 Pascal Suter <monodev@psuter.ch>.
+ All rights reserved.
+ (files was created by Pascal based on the source code of services_captiveportal.php from Manuel)
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+$pgtitle = array("Services", "Usermanager");
+require("guiconfig.inc");
+if(isset($_POST['save'])){
+ $_POST['username']=trim($_POST['username']);
+ if($_POST['old_username']!="" && $_POST['old_username']!=$_POST['username']){
+ $config['users'][$_POST['username']]=$config['users'][$_POST['old_username']];
+ unset($config['users'][$_POST['old_username']]);
+ }
+ foreach(Array('fullname','expirationdate') as $field){
+ $config['users'][$_POST['username']][$field]=trim($_POST[$field]);
+ }
+ if(trim($_POST['password1'])!="********" && trim($_POST['password1'])!=""){
+ if(trim($_POST['password1'])==trim($_POST['password2'])){
+ $config['users'][$_POST['username']]['password']=md5(trim($_POST['password1']));
+ } else {
+ $input_errors[]="passwords did not match --> password was not changed!";
+ }
+ }
+ if($_POST['username']=="" || trim($_POST['password1'])==""){
+ $input_errors[] = "username and password must not be empty!";
+ $_GET['act']="new";
+ } else {
+ write_config();
+ $savemsg=$_POST['username']." successfully saved<br>";
+ }
+} else if ($_GET['act']=="delete" && isset($_GET['username'])){
+ unset($config['users'][$_GET['username']]);
+ write_config();
+ $savemsg=$_GET['username']." successfully deleted<br>";
+}
+//erase expired accounts
+$changed=false;
+if(is_array($config['users'])){
+ foreach($config['users'] as $username => $user){
+ if(trim($user['expirationdate'])!="" && strtotime("-1 day")>strtotime($user['expirationdate'])){
+ unset($config['users'][$username]);
+ $changed=true;
+ $savemsg.="$username has expired --> $username was deleted<br>";
+ }
+ }
+ if($changed){
+ write_config();
+ }
+}
+
+?>
+<?php include("fbegin.inc"); ?>
+<script language="javascript" type="text/javascript" src="datetimepicker.js">
+//Date Time Picker script- by TengYong Ng of http://www.rainforestnet.com
+//Script featured on JavaScript Kit (http://www.javascriptkit.com)
+//For this script, visit http://www.javascriptkit.com
+</script>
+<?php if ($input_errors) print_input_errors($input_errors); ?>
+<?php if ($savemsg) print_info_box($savemsg); ?>
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr><td>
+ <ul id="tabnav">
+ <li class="tabact">User Manager</li>
+ </ul>
+ </td></tr>
+ <tr>
+ <td class="tabcont">
+<?php
+if($_GET['act']=="new" || $_GET['act']=="edit"){
+ if($_GET['act']=="edit" && isset($_GET['username'])){
+ $user=$config['users'][$_GET['username']];
+ }
+?>
+ <form action="services_usermanager.php" method="post" name="iform" id="iform">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Username</td>
+ <td width="78%" class="vtable">
+ <input name="username" type="text" class="formfld" id="username" size="20" value="<? echo $_GET['username']; ?>">
+ <br>
+ <span class="vexpl">Username to be used</span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Password</td>
+ <td width="78%" class="vtable">
+ <input name="password1" type="password" class="formfld" id="password1" size="20" value="<?php echo ($_GET['act']=='edit' ? "********" : "" ); ?>">
+ <br>
+ <span class="vexpl">Password for the user</span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">confirm Password</td>
+ <td width="78%" class="vtable">
+ <input name="password2" type="password" class="formfld" id="password2" size="20" value="<?php echo ($_GET['act']=='edit' ? "********" : "" ); ?>">
+ <br>
+ <span class="vexpl">Confirm the above Password</span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Full Name</td>
+ <td width="78%" class="vtable">
+ <input name="fullname" type="text" class="formfld" id="fullname" size="20" value="<? echo $user['fullname']; ?>">
+ <br>
+ Full Name of current user, for your own information only</td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">Expiration Date</td>
+ <td width="78%" class="vtable">
+ <input name="expirationdate" type="text" class="formfld" id="expirationdate" size="10" value="<? echo $user['expirationdate']; ?>">
+ <a href="javascript:NewCal('expirationdate','mmddyyyy')"><img src="cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>
+ <br> <span class="vexpl">enter nothing if account doesnt expire, otherwhise enter the expiration date in us-format: mm/dd/yyyy</span></td>
+ </tr>
+ <tr>
+ <td width="22%" valign="top">&nbsp;</td>
+ <td width="78%">
+ <input name="save" type="submit" class="formbtn" value="Save">
+ <input name="old_username" type="hidden" value="<? echo $_GET['username'];?>">
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+} else {
+ echo <<<END
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="35%" class="listhdrr">Username</td>
+ <td width="20%" class="listhdrr">Full Name</td>
+ <td width="35%" class="listhdr">Expires</td>
+ <td width="10%" class="list"></td>
+ </tr>
+END;
+ if(is_array($config['users'])){
+ foreach($config['users'] as $username => $user){
+?>
+ <tr>
+ <td class="listlr">
+ <?php echo $username; ?>&nbsp;
+ </td>
+ <td class="listr">
+ <?php echo $user['fullname']; ?>&nbsp;
+ </td>
+ <td class="listbg">
+ <?php echo $user['expirationdate']; ?>&nbsp;
+ </td>
+ <td valign="middle" nowrap class="list"> <a href="services_usermanager.php?act=edit&username=<?php echo $username; ?>"><img src="e.gif" width="17" height="17" border="0"></a>
+ &nbsp;<a href="services_usermanager.php?act=delete&username=<?php echo $username; ?>" onclick="return confirm('Do you really want to delete this User?')"><img src="x.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+<?php
+ }
+ }
+ echo <<<END
+ <tr>
+ <td class="list" colspan="3"></td>
+ <td class="list"> <a href="services_usermanager.php?act=new"><img src="plus.gif" width="17" height="17" border="0"></a></td>
+ </tr>
+ </table>
+END;
+}
+?>
+
+ </td>
+ </tr>
+ </table>
+<?php include("fend.inc"); ?>
OpenPOWER on IntegriCloud