X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=user_edit.php;h=cda9ab2d0088c7f0448620159ca12d98fffb9649;hb=691958794018beda9788e9bdb47d640a116af492;hp=75d89e5064d5d007e43bb32e2e9f91f6bd7f7119;hpb=030d2c3ffbf8229cc945427e9e9f7704226effe1;p=timetracker.git diff --git a/user_edit.php b/user_edit.php index 75d89e50..cda9ab2d 100644 --- a/user_edit.php +++ b/user_edit.php @@ -30,36 +30,34 @@ require_once('initialize.php'); import('form.Form'); import('ttProjectHelper'); import('ttTeamHelper'); +import('ttGroupHelper'); import('ttUserHelper'); import('form.Table'); import('form.TableColumn'); import('ttRoleHelper'); -// Access check. +// Access checks. if (!ttAccessAllowed('manage_users')) { header('Location: access_denied.php'); exit(); } - -// Get user id we are editing from the request. -$user_id = (int) $request->getParameter('id'); -// Get user details. -$user_details = ttUserHelper::getUserDetails($user_id); - -// Security checks. -if (!$user_details || // No details. - $user_details['team_id'] <> $user->team_id || // User not in team. - $user_details['rank'] > $user->rank || // User has a bigger rank. - ($user_details['rank'] == $user->rank && $user_details['id'] <> $user->id) // Same rank but not us. - ) { +$user_id = (int)$request->getParameter('id'); +$user_details = $user->getUserDetails($user_id); +if (!$user_details) { header('Location: access_denied.php'); exit(); } +// End of access checks. +$show_quota = $user->isPluginEnabled('mq'); if ($user->isPluginEnabled('cl')) - $clients = ttTeamHelper::getActiveClients($user->team_id); + $clients = ttGroupHelper::getActiveClients(); -$projects = ttTeamHelper::getActiveProjects($user->team_id); +$show_projects = MODE_PROJECTS == $user->getTrackingMode() || MODE_PROJECTS_AND_TASKS == $user->getTrackingMode(); +if ($show_projects) { + $projects = ttGroupHelper::getActiveProjects(); + if (count($projects) == 0) $show_projects = false; +} $assigned_projects = array(); if ($request->isPost()) { @@ -74,6 +72,7 @@ if ($request->isPost()) { $cl_client_id = $request->getParameter('client'); $cl_status = $request->getParameter('status'); $cl_rate = $request->getParameter('rate'); + $cl_quota_percent = $request->getParameter('quota_percent'); $cl_projects = $request->getParameter('projects'); if (is_array($cl_projects)) { foreach ($cl_projects as $p) { @@ -90,7 +89,8 @@ if ($request->isPost()) { $cl_name = $user_details['name']; $cl_login = $user_details['login']; $cl_email = $user_details['email']; - $cl_rate = str_replace('.', $user->decimal_mark, $user_details['rate']); + $cl_rate = str_replace('.', $user->getDecimalMark(), $user_details['rate']); + $cl_quota_percent = str_replace('.', $user->getDecimalMark(), $user_details['quota_percent']); $cl_role_id = $user_details['role_id']; $cl_client_id = $user_details['client_id']; $cl_status = $user_details['status']; @@ -118,6 +118,8 @@ if ($user->isPluginEnabled('cl')) $form->addInput(array('type'=>'combobox','name'=>'status','value'=>$cl_status, 'data'=>array(ACTIVE=>$i18n->get('dropdown.status_active'),INACTIVE=>$i18n->get('dropdown.status_inactive')))); $form->addInput(array('type'=>'floatfield','maxlength'=>'10','name'=>'rate','format'=>'.2','value'=>$cl_rate)); +if ($show_quota) + $form->addInput(array('type'=>'floatfield','maxlength'=>'10','name'=>'quota_percent','format'=>'.2','value'=>$cl_quota_percent)); // Define classes for the projects table. class NameCellRenderer extends DefaultCellRenderer { @@ -145,7 +147,7 @@ class RateCellRenderer extends DefaultCellRenderer { // Create projects table. $table = new Table('projects'); $table->setIAScript('setRate'); -$table->setTableOptions(array('width'=>'100%','cellspacing'=>'1','cellpadding'=>'3','border'=>'0')); +$table->setTableOptions(array('width'=>'300','cellspacing'=>'1','cellpadding'=>'3','border'=>'0')); $table->setRowOptions(array('valign'=>'top','class'=>'tableHeader')); $table->setData($projects); $table->setKeyField('id'); @@ -171,6 +173,7 @@ if ($request->isPost()) { // Require selection of a client for a client role. if ($user->isPluginEnabled('cl') && ttRoleHelper::isClientRole($cl_role_id) && !$cl_client_id) $err->add($i18n->get('error.client')); if (!ttValidFloat($cl_rate, true)) $err->add($i18n->get('error.field'), $i18n->get('form.users.default_rate')); + if (!ttValidFloat($cl_quota_percent, true)) $err->add($i18n->get('error.field'), $i18n->get('label.quota')); if ($err->no()) { $existing_user = ttUserHelper::getUserByLogin($cl_login); @@ -183,6 +186,7 @@ if ($request->isPost()) { 'email' => $cl_email, 'status' => $cl_status, 'rate' => $cl_rate, + 'quota_percent' => $cl_quota_percent, 'projects' => $assigned_projects); if (in_array('manage_users', $user->rights) && $cl_role_id) { $fields['role_id'] = $cl_role_id; @@ -237,6 +241,8 @@ $smarty->assign('active_roles', $active_roles); $smarty->assign('can_swap', $can_swap); $smarty->assign('forms', array($form->getName()=>$form->toArray())); $smarty->assign('onload', 'onLoad="document.userForm.name.focus();handleClientControl();"'); +$smarty->assign('show_quota', $show_quota); +$smarty->assign('show_projects', $show_projects); $smarty->assign('user_id', $user_id); $smarty->assign('title', $i18n->get('title.edit_user')); $smarty->assign('content_page_name', 'user_edit.tpl');