X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttUserHelper.class.php;h=f91128e7edaab0a3f9fb3b01983b5b258f06956c;hb=fafb0ae8f7098ffafa6799627891bd40f4811a52;hp=d1e112684b2e4d269ccbc108f2f90dfc19ba971e;hpb=7797eda9fb04c217a813db88e00bb9ee541eabbb;p=timetracker.git diff --git a/WEB-INF/lib/ttUserHelper.class.php b/WEB-INF/lib/ttUserHelper.class.php index d1e11268..f91128e7 100644 --- a/WEB-INF/lib/ttUserHelper.class.php +++ b/WEB-INF/lib/ttUserHelper.class.php @@ -111,7 +111,7 @@ class ttUserHelper { $status_v = ', '.$mdb2->quote($fields['status']); } $created_ip_v = ', '.$mdb2->quote($_SERVER['REMOTE_ADDR']); - $created_by_v = ', '.$mdb2->quote($user->id); + $created_by_v = ', '.$user->id; $sql = "insert into tt_users (name, login, password, group_id, org_id, role_id, client_id, rate, email, created, created_ip, created_by $status_f) values (". $mdb2->quote($fields['name']).", ".$mdb2->quote($fields['login']). @@ -120,11 +120,7 @@ class ttUserHelper { // Now deal with project assignment. if (!is_a($affected, 'PEAR_Error')) { - $sql = "SELECT LAST_INSERT_ID() AS last_id"; - $res = $mdb2->query($sql); - $val = $res->fetchRow(); - $last_id = $val['last_id']; - + $last_id = $mdb2->lastInsertID('tt_users', 'id'); $projects = isset($fields['projects']) ? $fields['projects'] : array(); if (count($projects) > 0) { // We have at least one project assigned. Insert corresponding entries in tt_user_project_binds table. @@ -150,16 +146,27 @@ class ttUserHelper { $mdb2 = getConnection(); // Check parameters. - if (!$user_id || !isset($fields['login'])) + if (!$user_id) return false; + $group_id = $user->getGroup(); + $org_id = $user->org_id; + // Prepare query parts. + if (isset($fields['login'])) { + $login_part = ", login = ".$mdb2->quote($fields['login']); + } + if (isset($fields['password'])) $pass_part = ', password = md5('.$mdb2->quote($fields['password']).')'; - if (in_array('manage_users', $user->rights)) { + + if (isset($fields['name'])) + $name_part = ', name = '.$mdb2->quote($fields['name']); + + if ($user->can('manage_users')) { if (isset($fields['role_id'])) { $role_id = (int) $fields['role_id']; - $role_id_part = ", role_id = $role_id"; + $role_part = ", role_id = $role_id"; } if (array_key_exists('client_id', $fields)) // Could be NULL. $client_part = ", client_id = ".$mdb2->quote($fields['client_id']); @@ -171,17 +178,19 @@ class ttUserHelper { $rate_part = ", rate = ".$mdb2->quote($rate); } + if (isset($fields['email'])) + $email_part = ', email = '.$mdb2->quote($fields['email']); + if (isset($fields['status'])) { $status = (int) $fields['status']; $status_part = ", status = $status"; } - $modified_part = ', modified = now(), modified_ip = '.$mdb2->quote($_SERVER['REMOTE_ADDR']).', modified_by = '.$mdb2->quote($user->id); + $modified_part = ', modified = now(), modified_ip = '.$mdb2->quote($_SERVER['REMOTE_ADDR']).', modified_by = '.$user->id; + $parts = ltrim($login_part.$pass_part.$name_part.$role_part.$client_part.$rate_part.$email_part.$modified_part.$status_part, ','); - $sql = "update tt_users set login = ".$mdb2->quote($fields['login']). - "$pass_part, name = ".$mdb2->quote($fields['name']). - "$role_id_part $client_part $rate_part $modified_part $status_part, email = ".$mdb2->quote($fields['email']). - " where id = $user_id"; + $sql = "update tt_users set $parts". + " where id = $user_id and group_id = $group_id and org_id = $org_id"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; @@ -193,7 +202,7 @@ class ttUserHelper { // otherwise de-activate the bind (set its status to inactive). This will keep the bind // and its rate in database for reporting. - $all_projects = ttTeamHelper::getAllProjects($user->group_id); + $all_projects = ttTeamHelper::getAllProjects($user->getGroup()); $assigned_projects = isset($fields['projects']) ? $fields['projects'] : array(); foreach($all_projects as $p) { @@ -232,8 +241,6 @@ class ttUserHelper { ttUserHelper::insertBind(array( 'user_id' => $user_id, 'project_id' => $project_id, - 'group_id' => $user->getGroup(), - 'org_id' => $user->org_id, 'rate' => $rate, 'status' => ACTIVE)); } @@ -319,10 +326,8 @@ class ttUserHelper { global $user; $mdb2 = getConnection(); - // This may be used during import. Use the following until we have import refactored. - $group_id = $fields['group_id'] ? (int) $fields['group_id'] : $user->getGroup(); - $org_id = $fields['org_id'] ? (int) $fields['org_id'] : $user->org_id; - + $group_id = $user->getGroup(); + $org_id = $user->org_id; $user_id = (int) $fields['user_id']; $project_id = (int) $fields['project_id']; $rate = $mdb2->quote($fields['rate']);