|
From: Benjamin C. <bc...@us...> - 2001-09-03 20:28:47
|
Update of /cvsroot/phpbt/phpbt/admin
In directory usw-pr-cvs1:/tmp/cvs-serv9607/admin
Modified Files:
user.php
Log Message:
Group assignment is working.
Code cleanup.
Index: user.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/admin/user.php,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- user.php 2001/09/03 17:32:47 1.22
+++ user.php 2001/09/03 20:28:43 1.23
@@ -26,46 +26,107 @@
include INCLUDE_PATH.'include.php';
function do_form($userid = 0) {
- global $q, $me, $flogin, $ffirstname, $flastname, $femail, $fpassword, $fusergroup, $STRING, $now;
+ global $q, $me, $_pv, $STRING, $now, $u;
// Validation
- if (!valid_email($femail))
+ if (!LOGIN_IS_EMAIL && !$_pv['flogin'] = trim($_pv['flogin'])) {
+ $error = $STRING['givelogin'];
+ } elseif (!valid_email($_pv['femail'])) {
$error = $STRING['giveemail'];
- elseif (!$fpassword = trim($fpassword))
+ } elseif (!$_pv['fpassword'] = trim($_pv['fpassword'])) {
$error = $STRING['givepassword'];
- if ($error) { list_items($userid, $error); return; }
+ }
+ if ($error) {
+ list_items($userid, $error);
+ return;
+ }
+ if (!isset($_pv['factive'])) $_pv['factive'] = 0;
+
+ if (LOGIN_IS_EMAIL) {
+ $login = $_pv['email'];
+ } else {
+ $login = $_pv['login'];
+ }
if (!$userid) {
- if (ENCRYPTPASS) $mpassword = md5($fpassword);
- else $mpassword = $fpassword;
- $new_user_id = $q->nextid(TBL_AUTH_USER);
- $q->query("insert into ".TBL_AUTH_USER." (user_id, login, first_name, last_name, email, password, created_date) values ($new_user_id, '$flogin','$ffirstname', '$flastname', '$femail', '$mpassword', $now)");
- $q->query("insert into ".TBL_USER_GROUP." (user_id, group_id) values ('$new_user_id' ,'$fusergroup')");
+ if (ENCRYPTPASS) $mpassword = md5($_pv['fpassword']);
+ else $mpassword = $_pv['fpassword'];
+ $new_user_id = $q->nextid(TBL_AUTH_USER);
+ $q->query('insert into '.TBL_AUTH_USER
+ ." (user_id, first_name, last_name, login, email, password, active,
+ created_by, created_date, last_modified_by, last_modified_date)
+ values ($new_user_id, '{$_pv['ffirstname']}', '{$_pv['flastname']}',
+ '$login', '{$_pv['femail']}', '$mpassword', {$_pv['factive']}, $u, $now,
+ $u, $now)");
+ foreach ($_pv['fusergroup'] as $group) {
+ $q->query("insert into ".TBL_USER_GROUP
+ ." (user_id, group_id, created_by, created_date)
+ values ('$new_user_id' ,'$group', $u, $now)");
+ }
} else {
if (ENCRYPTPASS) {
- $oldpass = $q->grab_field("select password from ".TBL_AUTH_USER." where user_id = $userid");
- if ($oldpass != $fpassword) {
- $pquery = "password = '".md5($fpassword)."',";
+ $oldpass = $q->grab_field("select password from ".TBL_AUTH_USER
+ ." where user_id = $userid");
+ if ($oldpass != $_pv['fpassword']) {
+ $pquery = "password = '".md5($_pv['fpassword'])."',";
} else {
$pquery = '';
}
} else {
- $pquery = "password = '$fpassword',";
+ $pquery = "password = '{$_pv['fpassword']}',";
}
- $q->query("update ".TBL_AUTH_USER." set first_name = '$ffirstname', last_name = '$flastname', email = '$femail' where user_id = '$userid'");
- $q->query("update ".TBL_USER_GROUP." set group_id = '$fusergroup' where user_id = '$userid'");
+ $q->query("update ".TBL_AUTH_USER." set first_name = '{$_pv['ffirstname']}',
+ last_name = '{$_pv['flastname']}', email = '{$_pv['femail']}', $pquery
+ active = {$_pv['factive']} where user_id = '$userid'");
+
+ // Update group memberships
+ // Get user's groups (without dropping the user group)
+ $q->query('select ug.group_id from '.TBL_USER_GROUP.' ug left join '
+ .TBL_AUTH_GROUP.' g using (group_id) '
+ ." where user_id = $userid and group_name <> 'User'");
+ while ($group_id = $q->grab_field()) {
+ $user_groups[] = $group_id;
+ }
+ // Compute differences between old and new
+ if (!is_array($user_groups)) {
+ $user_groups = array();
+ }
+ if (!is_array($_pv['fusergroup'])) {
+ $_pv['fusergroup'] = array();
+ }
+
+ $remove_from = array_diff($user_groups, $_pv['fusergroup']);
+ $add_to = array_diff($_pv['fusergroup'], $user_groups);
+
+ if (count($remove_from)) {
+ foreach ($remove_from as $group) {
+ $q->query('delete from '.TBL_USER_GROUP
+ ." where user_id = $userid and group_id = $group");
+ }
+ }
+ if (count($add_to)) {
+ foreach ($add_to as $group) {
+ $q->query("insert into ".TBL_USER_GROUP
+ ." (user_id, group_id, created_by, created_date)
+ values ('$userid' ,'$group', $u, $now)");
+ }
+ }
}
header("Location: $me?");
}
function show_form($userid = 0, $error = '') {
- global $q, $me, $t, $login,$firstname, $lastname, $email, $password, $usertype, $STRING;
+ global $q, $me, $t, $_pv, $STRING;
if ($userid && !$error) {
$row = $q->grab("select * from ".TBL_AUTH_USER." where user_id = '$userid'");
- //Get User's group id
- $user_group_id=$q->grab_field('select group_id from '.TBL_USER_GROUP.' where user_id='.$row['user_id'].' limit 1');
+
+ // Get user's groups
+ $q->query('select group_id from '.TBL_USER_GROUP." where user_id = {$row['user_id']}");
+ while ($group_id = $q->grab_field()) {
+ $user_groups[] = $group_id;
+ }
$t->set_var(array(
'action' => $STRING['edit'],
@@ -75,33 +136,44 @@
'flastname' => stripslashes($row['last_name']),
'femail' => $row['email'],
'fpassword' => $row['password'],
- 'fusergroup' => build_select('group',$user_group_id),
- 'createddate' => $row['created_date']));
+ 'factive' => $row['active'] ? 'checked' : '',
+ 'fusergroup' => build_select('group', $user_groups)
+ ));
} else {
$t->set_var(array(
'action' => $userid ? $STRING['edit'] : $STRING['addnew'],
'error' => $error,
- 'fuserid' => $userid,
- 'flogin' => $login,
- 'ffirstname' => stripslashes($firstname),
- 'flastname' => stripslashes($lastname),
- 'femail' => $email,
- 'fpassword' => $password ? $password : genpassword(10),
- 'fusergroup' => build_select('group'),
- 'createddate' => $createddate));
+ 'fuserid' => $_pv['userid'],
+ 'flogin' => $_pv['login'],
+ 'ffirstname' => stripslashes($_pv['firstname']),
+ 'flastname' => stripslashes($_pv['lastname']),
+ 'femail' => $_pv['email'],
+ 'fpassword' => $_pv['password'] ? $_pv['password'] : genpassword(10),
+ 'factive' => isset($_pv['active']) ? ($_pv['active'] ? 'checked' : '')
+ : 'checked',
+ 'fusergroup' => build_select('group', $_pv['fusergroup'])
+ ));
}
+
+ // Show the login field only if login is not tied to email address
+ if (LOGIN_IS_EMAIL) {
+ $t->set_var('loginarea', '');
+ } else {
+ $t->parse('loginarea', 'loginentryarea', true);
+ }
}
function list_items($userid = 0, $error = '') {
- global $me, $q, $t, $selrange, $order, $sort, $select, $STRING, $TITLE, $page;
+ global $me, $q, $t, $selrange, $order, $sort, $STRING, $TITLE, $page;
- $t->set_file('content','userlist.html');
- $t->set_block('content','row','rows');
+ $t->set_file('content', 'userlist.html');
+ $t->set_block('content', 'row', 'rows');
+ $t->set_block('content', 'loginentryarea', 'loginarea');
- if (!$order) { $order = '1'; $sort = 'asc'; }
+ if (!$order) { $order = 'login'; $sort = 'asc'; }
$nr = $q->grab_field("select count(*) from ".TBL_AUTH_USER);
- list($selrange, $llimit, $npages, $pages) = multipages($nr,$page,
+ list($selrange, $llimit, $npages, $pages) = multipages($nr, $page,
"order=$order&sort=$sort");
$t->set_var(array(
@@ -110,9 +182,9 @@
'last' => $llimit+$selrange > $nr ? $nr : $llimit+$selrange,
'records' => $nr));
- $q->query("select user_id,login, concat(first_name,' ',last_name) as fullname, email,
- created_date from ".TBL_AUTH_USER." order by $order $sort
- limit $llimit, $selrange");
+ $q->query("select user_id, concat(first_name,' ',last_name) as fullname,
+ email, login, created_date, active from ".TBL_AUTH_USER
+ ." order by $order $sort limit $llimit, $selrange");
if (!$q->num_rows()) {
$t->set_var('rows',"<tr><td>{$STRING['nousers']}</td></tr>");
@@ -122,8 +194,10 @@
$headers = array(
'userid' => 'user_id',
'name' => 'last_name',
- 'login' => 'email',
+ 'login' => 'login',
+ 'email' => 'email',
'password' => 'password',
+ 'active' => 'active',
'date' => 'created_date');
sorting_headers($me, $headers, $order, $sort);
@@ -135,13 +209,14 @@
'login' => $row['login'],
'name' => stripslashes($row['fullname']),
'email' => $row['email'],
+ 'active' => $row['active'] ? 'Yes' : 'No',
//'usergroup' => $q->grab_field('select group_name from '.TBL_AUTH_GROUP.' ag, '.TBL_USER_GROUP.' ug where user_id='.$row['user_id'].' and ag.group_id = ug.group_id limit 1'),
'date' => date(DATEFORMAT,$row['created_date'])));
$t->parse('rows','row',true);
}
show_form($userid, $error);
- $t->set_var('TITLE',$TITLE['user']);
+ $t->set_var('TITLE', $TITLE['user']);
}
$t->set_file('wrap','wrap.html');
@@ -155,8 +230,8 @@
do_form($id);
} else list_items();
-$t->pparse('main',array('content','wrap','main'));
+$t->pparse('main',array('content', 'wrap', 'main'));
page_close();
-?>
\ No newline at end of file
+?>
|