[Openupload-svn-update] SF.net SVN: openupload:[20] trunk
Status: Beta
Brought to you by:
tsdogs
|
From: <ts...@us...> - 2008-10-15 18:14:26
|
Revision: 20
http://openupload.svn.sourceforge.net/openupload/?rev=20&view=rev
Author: tsdogs
Date: 2008-10-15 18:14:17 +0000 (Wed, 15 Oct 2008)
Log Message:
-----------
add administration of users
Modified Paths:
--------------
trunk/lib/modules/db/mysql.inc.php
trunk/lib/modules/default/admin.inc.php
trunk/www/templates/default/main.css
Added Paths:
-----------
trunk/templates/default/modules/admin/adminmenu.tpl
trunk/templates/default/modules/admin/useradd.tpl
trunk/templates/default/modules/admin/useredit.tpl
trunk/templates/default/modules/admin/users.tpl
trunk/www/templates/default/img/admin/active0.png
trunk/www/templates/default/img/admin/active1.png
trunk/www/templates/default/img/admin/delete_user.png
trunk/www/templates/default/img/admin/edit_user.png
trunk/www/templates/default/img/admin/tadd_user.png
trunk/www/templates/default/img/admin/tdelete_user.png
Modified: trunk/lib/modules/db/mysql.inc.php
===================================================================
--- trunk/lib/modules/db/mysql.inc.php 2008-10-15 16:18:27 UTC (rev 19)
+++ trunk/lib/modules/db/mysql.inc.php 2008-10-15 18:14:17 UTC (rev 20)
@@ -27,8 +27,11 @@
}
}
- function queryUser($login) {
- $res = mysql_query('select * from '.$this->prefix.'users where login="'.mysql_real_escape_string($login).'" and active=1');
+ function queryUser($login,$active = true) {
+
+ $sql = 'select * from '.$this->prefix.'users where login="'.mysql_real_escape_string($login).'"';
+ if ($active) $sql .= ' and active=1';
+ $res = mysql_query($sql);
if (mysql_num_rows($res)>0) {
$result = mysql_fetch_assoc($res);
mysql_free_result($res);
@@ -51,13 +54,13 @@
$sql = 'update '.$this->prefix.'users set
password="'.$e($user['password']).'",group_id="'.$e($user['group_id']).'",name="'.$e($user['name']).
'",email="'.$e($user['email']).'",active="'.$e($user['active']).'"'.
- 'where id="'.$user['id'].'"';
+ 'where login="'.$user['login'].'"';
mysql_query($sql);
}
- function deleteUser($user) {
+ function deleteUser($login) {
$e = 'mysql_real_escape_string';
- $sql = 'delete from '.$this->prefix.'users where id="'.$user['id'].'"';
+ $sql = 'delete from '.$this->prefix.'users where login="'.$login.'"';
mysql_query($sql);
}
Modified: trunk/lib/modules/default/admin.inc.php
===================================================================
--- trunk/lib/modules/default/admin.inc.php 2008-10-15 16:18:27 UTC (rev 19)
+++ trunk/lib/modules/default/admin.inc.php 2008-10-15 18:14:17 UTC (rev 20)
@@ -16,6 +16,10 @@
),
"adminusers" => array (
1 => "users",
+ 2 => "useradd",
+ 3 => "useredit",
+ 4 => "userdel",
+ 5 => "useractivate",
),
"admingroups" => array (
1 => "groups",
@@ -45,8 +49,115 @@
}
function users() {
+ /* List the users */
+ $users = app()->db->loadTable('users','login');
+ $this->tpl->assign('users',$users);
}
+ function useradd() {
+ global $_POST;
+
+ $groups = app()->db->loadTable('groups','name');
+ $this->tpl->assign('groups',$groups);
+ if (isset($_POST['adduserlogin'])) {
+ /* add the user */
+ $user['login']=$_POST['adduserlogin'];
+ $user['name']=$_POST['addusername'];
+ $user['group_id']=$_POST['addusergroup'];
+ $user['email']=$_POST['adduseremail'];
+ $user['active']=$_POST['adduseractive'];
+ $error = false;
+ if (strlen($_POST['adduserlogin'])<5) {
+ app()->error('login name must be at least 5 char long!');
+ $error = true;
+ }
+ if (strlen($_POST['adduserpassword'])<5) {
+ app()->error('password must be at least 5 char long!');
+ $error = true;
+ } else if ($_POST['adduserpassword']!=$_POST['adduserrepassword']) {
+ app()->error('Passwords do not correspond!');
+ $error = true;
+ }
+ if (!validEmail($_POST['adduseremail'])) {
+ app()->error('e-mail is not a valid address!');
+ $error = true;
+ }
+ if (!$error) {
+ $user['password']=crypt($_POST['adduserpassword']);
+ app()->db->addUser($user);
+ /* redirect */
+ $this->nextStep(1);
+ }
+ }
+ if (!isset($user)) {
+ $user['active']=1;
+ $user['group_id']=app()->config['register']['default_group'];
+ }
+ $this->tpl->assign('adduser',$user);
+ }
+
+ function userdel() {
+ global $_GET;
+
+ if (isset($_GET['id'])) {
+ app()->db->deleteUser($_GET['id']);
+ }
+ $this->nextStep(1);
+ }
+
+ function useractivate() {
+ global $_GET;
+
+ if (isset($_GET['id'])) {
+ $active=$_GET['active']==1?0:1;
+ $user = app()->db->queryUser($_GET['id'],false);
+ if ($user['login']==$_GET['id']) {
+ $user['active']=$active;
+ app()->db->updateUser($user);
+ }
+ }
+ $this->nextStep(1);
+ }
+
+ function useredit() {
+ global $_GET;
+ global $_POST;
+ /* edit the user */
+ $groups = app()->db->loadTable('groups','name');
+ $this->tpl->assign('groups',$groups);
+ if (isset($_POST['login'])) {
+ $user = app()->db->queryUser($_POST['login'],false);
+ $user['name']=$_POST['editusername'];
+ $user['group_id']=$_POST['editusergroup'];
+ $user['email']=$_POST['edituseremail'];
+ $user['active']=$_POST['edituseractive'];
+ $error = false;
+ if ($_POST['edituserpassword']!='') {
+ if (strlen($_POST['edituserpassword'])<5) {
+ app()->error('password must be at least 5 char long!');
+ $error = true;
+ } else if ($_POST['edituserpassword']!=$_POST['edituserrepassword']) {
+ app()->error('Passwords do not correspond!');
+ $error = true;
+ }
+ if (!$error)
+ $user['password']=crypt($_POST['edituserpassword']);
+ }
+ if (!validEmail($_POST['edituseremail'])) {
+ app()->error('e-mail is not a valid address!');
+ $error = true;
+ }
+ if (!$error) {
+ app()->db->updateUser($user);
+ /* redirect */
+ $this->nextStep(1);
+ }
+ } else {
+ $user = app()->db->queryUser($_GET['id'],false);
+ }
+ $this->tpl->assign('edituser',$user);
+ }
+
function groups() {
}
Added: trunk/templates/default/modules/admin/adminmenu.tpl
===================================================================
--- trunk/templates/default/modules/admin/adminmenu.tpl (rev 0)
+++ trunk/templates/default/modules/admin/adminmenu.tpl 2008-10-15 18:14:17 UTC (rev 20)
@@ -0,0 +1,6 @@
+<div id="menu">
+<ul>
+ <li><a href="{$script}?action=adminusers">{tr}Users{/tr}</a></li>
+</ul>
+</div>
+<hr>
\ No newline at end of file
Added: trunk/templates/default/modules/admin/useradd.tpl
===================================================================
--- trunk/templates/default/modules/admin/useradd.tpl (rev 0)
+++ trunk/templates/default/modules/admin/useradd.tpl 2008-10-15 18:14:17 UTC (rev 20)
@@ -0,0 +1,18 @@
+<form action="{$script}" method="post">
+<input type="hidden" name="action" value="{$action}">
+<input type="hidden" name="step" value="{$step}">
+<table border="0">
+<tr><td>{tr}Login name{/tr}:</td><td><input type="text" name="adduserlogin" value="{$adduser.login}"></td></tr>
+<tr><td>{tr}Password{/tr}:</td><td><input type="password" name="adduserpassword"></td></tr>
+<tr><td>{tr}Retype Password{/tr}:</td><td><input type="password" name="adduserrepassword"></td></tr>
+<tr><td>{tr}Full Name{/tr}:</td><td><input type="text" name="addusername" value="{$adduser.name}"></td></tr>
+<tr><td>{tr}e-mail{/tr}:</td><td><input type="text" name="adduseremail" value="{$adduser.email}"></td></tr>
+<tr><td>{tr}Group{/tr}:</td><td><select name="addusergroup">
+ {foreach from=$groups item=g}
+ <option value="{$g.name}" {if $g.name==$adduser.group_id} selected{/if}>{$g.description}</option>
+ {/foreach}
+ </select></td></tr>
+<tr><td>{tr}Active{/tr}:</td><td><input type="checkbox" name="adduseractive" value="1" {if $adduser.active==1}checked{/if}></td></tr>
+<tr><td colspan="2" align=right><input type="submit" class="submit" value="{tr}Add{/tr}"></td></tr>
+</table>
+</form>
\ No newline at end of file
Added: trunk/templates/default/modules/admin/useredit.tpl
===================================================================
--- trunk/templates/default/modules/admin/useredit.tpl (rev 0)
+++ trunk/templates/default/modules/admin/useredit.tpl 2008-10-15 18:14:17 UTC (rev 20)
@@ -0,0 +1,19 @@
+<form action="{$script}" method="post">
+<input type="hidden" name="action" value="{$action}">
+<input type="hidden" name="step" value="{$step}">
+<input type="hidden" name="login" value="{$edituser.login}">
+<table border="0">
+<tr><td>{tr}Login name{/tr}:</td><td>{$edituser.login}</td></tr>
+<tr><td>{tr}Password{/tr}:</td><td><input type="password" name="edituserpassword"></td></tr>
+<tr><td>{tr}Retype Password{/tr}:</td><td><input type="password" name="edituserrepassword"></td></tr>
+<tr><td>{tr}Full Name{/tr}:</td><td><input type="text" name="editusername" value="{$edituser.name}"></td></tr>
+<tr><td>{tr}e-mail{/tr}:</td><td><input type="text" name="edituseremail" value="{$edituser.email}"></td></tr>
+<tr><td>{tr}Group{/tr}:</td><td><select name="editusergroup">
+ {foreach from=$groups item=g}
+ <option value="{$g.name}" {if $g.name==$edituser.group_id} selected{/if}>{$g.description}</option>
+ {/foreach}
+ </select></td></tr>
+<tr><td>{tr}Active{/tr}:</td><td><input type="checkbox" name="edituseractive" value="1" {if $edituser.active==1}checked{/if}></td></tr>
+<tr><td colspan="2" align=right><input type="submit" class="submit" value="{tr}Confirm{/tr}"></td></tr>
+</table>
+</form>
\ No newline at end of file
Added: trunk/templates/default/modules/admin/users.tpl
===================================================================
--- trunk/templates/default/modules/admin/users.tpl (rev 0)
+++ trunk/templates/default/modules/admin/users.tpl 2008-10-15 18:14:17 UTC (rev 20)
@@ -0,0 +1,34 @@
+{include file="default/modules/admin/adminmenu.tpl"}
+<div id="toolbar">
+<a href="{$script}?action={$action}&step=2&id={$u.id}"><img src="{$page.template}/img/admin/tadd_user.png"></a>
+<img src="{$page.template}/img/admin/tdelete_user.png">
+</div>
+<br>
+<table border="0" id="dbtable">
+<tr>
+ <th width="10">S</th>
+ <th width="100">Login</th>
+ <th width="200">Name</th>
+ <th width="100">Group</th>
+ <th width="200">E-mail</th>
+ <th width="20">Active</th>
+ <th width="100">Actions</th>
+</tr>
+{foreach from=$users item=u}
+<tr>
+ <td id="row1"><input type="checkbox" name="user_{$u.login}" value="1"></td>
+ <td id="row1"><a href="{$script}?action=adminusers&step=3&id={$u.login}">{$u.login}</a></td>
+ <td id="row1">{$u.name}</td>
+ <td id="row1">{$u.group_id}</td>
+ <td id="row1">{$u.email}</td>
+ <td id="row1"><a href="{$script}?action={$action}&step=5&id={$u.login}&active={$u.active}">
+ <img src="{$page.template}/img/admin/active{$u.active}.png">
+ </a>
+ </td>
+ <td id="row1">
+ <a href="{$script}?action={$action}&step=3&id={$u.login}"><img src="{$page.template}/img/admin/edit_user.png"></a>
+
+ <a href="{$script}?action={$action}&step=4&id={$u.login}"><img src="{$page.template}/img/admin/delete_user.png"></a></td>
+</tr>
+{/foreach}
+</table>
\ No newline at end of file
Added: trunk/www/templates/default/img/admin/active0.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/active0.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/www/templates/default/img/admin/active1.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/active1.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/www/templates/default/img/admin/delete_user.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/delete_user.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/www/templates/default/img/admin/edit_user.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/edit_user.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/www/templates/default/img/admin/tadd_user.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/tadd_user.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added: trunk/www/templates/default/img/admin/tdelete_user.png
===================================================================
(Binary files differ)
Property changes on: trunk/www/templates/default/img/admin/tdelete_user.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/www/templates/default/main.css
===================================================================
--- trunk/www/templates/default/main.css 2008-10-15 16:18:27 UTC (rev 19)
+++ trunk/www/templates/default/main.css 2008-10-15 18:14:17 UTC (rev 20)
@@ -134,4 +134,24 @@
border-right: 1px solid #2d55b4;
border-bottom: 1px solid #2d55b4;
font-weight: bold;
+}
+img {
+ border: 0px;
+}
+#dbtable {
+ border: 1px solid #000;
+}
+#dbtable th {
+ background-color: #4c8dff;
+ color: #ffffff;
+ font-weight: bold;
+}
+#dbtable #row1 {
+ padding: 2px;
+ background-color: #fafafa;
+ text-align: center;
+}
+#datatable #row2 {
+ background-color: #adadad;
+ text-align: center;
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|