<?php
/*=====================================================================*\
|| ###################################################################
|| # Kalens [#]version[#]
|| # Copyright ©2002-[#]year[#] Iris Studios, Inc.
|| #
|| # This program is free software; you can redistribute it and/or modify
|| # it under the terms of the GNU General Public License as published by
|| # the Free Software Foundation; version [#]gpl[#] of the License.
|| #
|| # This program is distributed in the hope that it will be useful, but
|| # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|| # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|| # more details.
|| #
|| # You should have received a copy of the GNU General Public License along
|| # with this program; if not, write to the Free Software Foundation, Inc.,
|| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|| ###################################################################
\*=====================================================================*/
define('SVN', '$Id$');
require_once('./global.php');
require_once('./includes/class_user.php');
require_once('./includes/api_error.php');
APIError(array('APIErrorHandler', 'AdminError'));
// ###################################################################
if (empty($_REQUEST['do']))
{
$_REQUEST['do'] = 'modify';
}
// ###################################################################
if ($_REQUEST['do'] == 'kill')
{
$user = new UserAPI($kalens);
$user->set('userid', $kalens->in['userid']);
$user->set_condition();
$user->delete();
$print->redirect('users.php?do=results&id=-1');
}
// ###################################################################
if ($_REQUEST['do'] == 'delete')
{
$print->page_confirm($lang->string('Are you sure you want to delete this user?'), 'users.php', 'kill', array('userid' => $kalens->in['userid']));
}
// ###################################################################
if ($_POST['do'] == 'insert')
{
$user = new UserAPI($kalens);
$user->set('username', $kalens->in['username']);
$user->set('email', $kalens->in['email']);
$user->set('password', $kalens->in['password']);
$user->set('canadmin', $kalens->in['canadmin']);
$user->set('stylechoice', $kalens->in['stylechoice']);
$user->set('tzoffset', $kalens->in['tzoffset']);
$user->insert();
$print->redirect('users.php?do=results&id=-1');
}
// ###################################################################
if ($_REQUEST['do'] == 'add')
{
$print->page_start($lang->string('Add New User'));
$print->form_start('users.php', 'insert');
$print->table_start();
$print->table_head($lang->string('Add New User'));
$print->row_input($lang->string('Username'), 'username');
$print->row_input($lang->string('Email'), 'email');
$print->row_input($lang->string('Password'), 'password');
$print->list_item($lang->string('User'), '0', true);
$print->list_item($lang->string('Admin'), '1');
$print->row_list($lang->string('Status'), 'canadmin');
$print->row_text($lang->string('Style Choice'), construct_style_select(false, 'stylechoice'));
$print->row_text($lang->string('Time Zone Offset'), construct_time_zone_select(0, 'tzoffset'));
$print->row_submit();
$print->table_end();
$print->form_end();
$print->page_end();
}
// ###################################################################
if ($_POST['do'] == 'update')
{
$user = new UserAPI($kalens);
$user->set('userid', $kalens->in['userid']);
$user->set_condition();
$user->set('username', $kalens->in['username']);
$user->set('email', $kalens->in['email']);
$user->set('password', $kalens->in['password']);
$user->set('canadmin', $kalens->in['canadmin']);
$user->set('stylechoice', $kalens->in['stylechoice']);
$user->set('tzoffset', $kalens->in['tzoffset']);
$user->update();
$print->redirect('users.php?do=results&id=-1');
}
// ###################################################################
if ($_REQUEST['do'] == 'edit')
{
$user = new UserAPI($kalens);
$user->set('userid', $kalens->in['id']);
$user->set_condition();
$user->fetch();
$print->page_start($lang->string('Edit User'));
$print->form_start('users.php', 'update');
$print->form_hidden_field('userid', $user->objdata['userid']);
$print->table_start();
$print->table_head(sprintf($lang->string('Edit User %1$s (id: %2$d)'), $user->objdata['username'], $user->objdata['userid']));
$print->row_input($lang->string('Username'), 'username', $user->objdata['username']);
$print->row_input($lang->string('Email'), 'email', $user->objdata['email']);
$print->row_input($lang->string('Password'), 'password');
$print->list_item($lang->string('User'), '0', ($user->objdata['canadmin'] ? false : true));
$print->list_item($lang->string('Admin'), '1', ($user->objdata['canadmin'] ? true : false));
$print->row_list($lang->string('Status'), 'canadmin');
$print->row_text($lang->string('Style Choice'), construct_style_select($user->objdata['stylechoice'], 'stylechoice'));
$print->row_text($lang->string('Time Zone Offset'), construct_time_zone_select($user->objdata['tzoffset'], 'tzoffset'));
$print->row_submit();
$print->table_end();
$print->form_end();
$print->page_end();
}
// ###################################################################
if ($_REQUEST['do'] == 'modify')
{
$print->page_start($lang->string('Search'));
$print->form_start('users.php', 'results', false, 'inputform', 'get');
$print->table_start();
$print->table_head($lang->string('Search'));
$print->row_input($lang->string('Username'), 'username');
$print->row_input($lang->string('Email'), 'email');
$print->list_item($lang->string('BOTH'), '-1', true);
$print->list_item($lang->string('User'), '1');
$print->list_item($lang->string('Admin'), '2');
$print->row_list($lang->string('Status'), 'canadmin');
$print->row_submit();
$print->table_end();
$print->form_end();
$print->page_end();
}
// ###################################################################
if ($_REQUEST['do'] == 'results')
{
if ($kalens->in['id'] == -1)
{
$query = 'SELECT * FROM ' . TABLE_PREFIX . 'user';
}
else
{
$kalens->input_clean('canadmin', TYPE_UINT);
if ($kalens->in['username'])
{
$query[] = "username LIKE '%" . $kalens->input_escape('username') . "%'";
}
if ($kalens->in['email'])
{
$query[] = "email LIKE '%" . $kalens->input_escape('email') . "%'";
}
if ($kalens->in['canadmin'] != -1)
{
if ($kalens->in['canadmin'] == 2)
{
$kalens->in['canadmin'] = 1;
}
else
{
$kalens->in['canadmin'] = 0;
}
$query[] = "canadmin = " . $kalens->in['canadmin'];
}
if (is_array($query))
{
$query = "SELECT * FROM " . TABLE_PREFIX . "user\nWHERE " . implode("\nAND ", $query);
}
else
{
$print->error($lang->string('You did not specify any valid search criteria.'));
}
}
$get_users = $db->query($query);
$print->page_start($lang->string('User List'));
$print->table_start();
$print->table_head($lang->string('User List'), 4);
$print->table_column_head(array(
$lang->string('Username'),
$lang->string('Email'),
$lang->string('Status'),
$lang->string('Actions')
));
$num = $db->num_rows($get_users);
while ($user = $db->fetch_array($get_users))
{
if ($num == 1)
{
@header("Location: users.php?do=edit&id=$user[userid]");
}
$print->row_multi_item(array(
$user['username'] => 'l',
$user['email'] => 'c',
($user['canadmin'] ? $lang->string('Admin') : $lang->string('User')) => 'c',
"<a href=\"users.php?do=edit&id=$user[userid]\">[" . $lang->string('Edit') . "]</a> <a href=\"users.php?do=delete&userid=$user[userid]\">[" . $lang->string('Delete') . "]</a>" => 'c')
);
}
$print->table_end();
$print->page_end();
}
/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>