diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2005-03-07 23:12:41 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2005-03-07 23:12:41 +0000 |
commit | 9699028a571f1df9bd54799a8df0b97d03f6901b (patch) | |
tree | 44b7a6d30f21088895656ad7f0e9395c6f606f3a /usr/local/www/services_usermanager.php | |
parent | 90b7aa76dae8c8436f968d2cb47f25a1c52ef989 (diff) | |
download | pfsense-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-x | usr/local/www/services_usermanager.php | 191 |
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"> </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; ?> + </td> + <td class="listr"> + <?php echo $user['fullname']; ?> + </td> + <td class="listbg"> + <?php echo $user['expirationdate']; ?> + </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> + <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"); ?> |