Deprecated: Assigning the return value of new by reference is deprecated in /home/bluestat/public_html/source/index.php on line 477
Kalens - Blob - ViewGit - Blue Static
<?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&amp;id=$user[userid]\">[" . $lang->string('Edit') . "]</a> <a href=\"users.php?do=delete&amp;userid=$user[userid]\">[" . $lang->string('Delete') . "]</a>" => 'c')
		);
	}

	$print->table_end();

	$print->page_end();
}

/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>