X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttTeamHelper.class.php;h=359f6b97736f261e2c31289618a88e9e59432d08;hb=de05f61301a897661c702f03c1b45dd3ab5c0e8a;hp=6920ab3591ae4cc59cb04693dac08d512e02f34f;hpb=95356f167c97ca1a70fc78d91a9dbc7b1d258b31;p=timetracker.git diff --git a/WEB-INF/lib/ttTeamHelper.class.php b/WEB-INF/lib/ttTeamHelper.class.php index 6920ab35..359f6b97 100644 --- a/WEB-INF/lib/ttTeamHelper.class.php +++ b/WEB-INF/lib/ttTeamHelper.class.php @@ -30,10 +30,10 @@ import('ttUserHelper'); import('DateAndTime'); import('ttInvoiceHelper'); -// Class ttTeamHelper - contains helper functions that operate with teams. +// Class ttTeamHelper - contains helper functions that operate with groups. class ttTeamHelper { - // The getUserCount function returns number of people in team. + // The getUserCount function returns number of active users in a group. static function getUserCount($group_id) { $mdb2 = getConnection(); @@ -47,17 +47,17 @@ class ttTeamHelper { return false; } - // The getUsersForClient obtains all active and inactive users in a team that are relevant to a client. + // The getUsersForClient obtains all active and inactive users in a group that are relevant to a client. static function getUsersForClient() { global $user; $mdb2 = getConnection(); - $sql = "select u.id, u.name from tt_user_project_binds upb - inner join tt_client_project_binds cpb on (upb.project_id = cpb.project_id and cpb.client_id = $user->client_id) - inner join tt_users u on (u.id = upb.user_id) - where (u.status = 1 or u.status = 0) - group by u.id - order by upper(u.name)"; + $sql = "select u.id, u.name from tt_user_project_binds upb". + " inner join tt_client_project_binds cpb on (upb.project_id = cpb.project_id and cpb.client_id = $user->client_id)". + " inner join tt_users u on (u.id = upb.user_id)". + " where (u.status = 1 or u.status = 0)". + " group by u.id". + " order by upper(u.name)"; $res = $mdb2->query($sql); $user_list = array(); if (is_a($res, 'PEAR_Error')) @@ -68,7 +68,7 @@ class ttTeamHelper { return $user_list; } - // The getActiveUsers obtains all active users in a given team. + // The getActiveUsers obtains all active users in a given group. static function getActiveUsers($options = null) { global $user; global $i18n; @@ -153,7 +153,7 @@ class ttTeamHelper { return $user_list; } - // The getUsers obtains all active and inactive (but not deleted) users in a given team. + // The getUsers obtains all active and inactive (but not deleted) users in a group. static function getUsers() { global $user; $mdb2 = getConnection(); @@ -168,7 +168,7 @@ class ttTeamHelper { return $user_list; } - // The getInactiveUsers obtains all inactive users in a given team. + // The getInactiveUsers obtains all inactive users in a group. static function getInactiveUsers($group_id, $all_fields = false) { $mdb2 = getConnection(); @@ -187,7 +187,7 @@ class ttTeamHelper { return false; } - // The getAllUsers obtains all users in a given team. + // The getAllUsers obtains all users in a group. static function getAllUsers($group_id, $all_fields = false) { $mdb2 = getConnection(); if ($all_fields) @@ -205,7 +205,7 @@ class ttTeamHelper { return false; } - // getActiveProjects - returns an array of active projects for team. + // getActiveProjects - returns an array of active projects for a group. static function getActiveProjects($group_id) { $result = array(); @@ -223,7 +223,7 @@ class ttTeamHelper { return $result; } - // getInactiveProjects - returns an array of inactive projects for team. + // getInactiveProjects - returns an array of inactive projects for a group. static function getInactiveProjects($group_id) { $result = array(); @@ -241,7 +241,7 @@ class ttTeamHelper { return $result; } - // The getAllProjects obtains all projects in a given team. + // The getAllProjects obtains all projects in a group. static function getAllProjects($group_id, $all_fields = false) { $mdb2 = getConnection(); @@ -260,7 +260,7 @@ class ttTeamHelper { return false; } - // getActiveTasks - returns an array of active tasks for team. + // getActiveTasks - returns an array of active tasks for a group. static function getActiveTasks($group_id) { $result = array(); @@ -277,7 +277,7 @@ class ttTeamHelper { return $result; } - // getInactiveTasks - returns an array of inactive tasks for team. + // getInactiveTasks - returns an array of inactive tasks for a group. static function getInactiveTasks($group_id) { $result = array(); @@ -295,7 +295,7 @@ class ttTeamHelper { return $result; } - // The getAllTasks obtains all tasks in a given team. + // The getAllTasks obtains all tasks in a group. static function getAllTasks($group_id, $all_fields = false) { $mdb2 = getConnection(); @@ -336,7 +336,7 @@ class ttTeamHelper { return $result; } - // getActiveRoles - returns an array of active roles for team. + // getActiveRoles - returns an array of active roles for a group. static function getActiveRoles($group_id) { $result = array(); @@ -347,14 +347,14 @@ class ttTeamHelper { $result = array(); if (!is_a($res, 'PEAR_Error')) { while ($val = $res->fetchRow()) { - $val['is_client'] = in_array('track_own_time', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have data entry right. + $val['is_client'] = in_array('track_own_time', explode(',', $val['rights'])) ? 0 : 1; // Clients do not have track_own_time right. $result[] = $val; } } return $result; } - // getInactiveRoles - returns an array of inactive roles for team. + // getInactiveRoles - returns an array of inactive roles for a group. static function getInactiveRoles($group_id) { $result = array(); @@ -394,7 +394,7 @@ class ttTeamHelper { return $result; } - // The getActiveClients returns an array of active clients for team. + // The getActiveClients returns an array of active clients for a group. static function getActiveClients($group_id, $all_fields = false) { $result = array(); @@ -415,7 +415,7 @@ class ttTeamHelper { return $result; } - // The getInactiveClients returns an array of inactive clients for team. + // The getInactiveClients returns an array of inactive clients for a group. static function getInactiveClients($group_id, $all_fields = false) { $result = array(); @@ -436,7 +436,7 @@ class ttTeamHelper { return $result; } - // The getAllClients obtains all clients in a given team. + // The getAllClients obtains all clients in a group. static function getAllClients($group_id, $all_fields = false) { $mdb2 = getConnection(); @@ -456,7 +456,7 @@ class ttTeamHelper { return false; } - // The getActiveInvoices returns an array of active invoices for team. + // The getActiveInvoices returns an array of active invoices for a group. static function getActiveInvoices($localizeDates = true) { global $user; @@ -488,7 +488,7 @@ class ttTeamHelper { return $result; } - // The getAllInvoices returns an array of all invoices for team. + // The getAllInvoices returns an array of all invoices for a group. static function getAllInvoices() { global $user; @@ -531,7 +531,7 @@ class ttTeamHelper { return $result; } - // getUserToProjectBinds - obtains all user to project binds for a team. + // getUserToProjectBinds - obtains all user to project binds for a group. static function getUserToProjectBinds($group_id) { $mdb2 = getConnection(); @@ -548,7 +548,7 @@ class ttTeamHelper { return false; } - // The getAllCustomFields obtains all custom fields in a given team. + // The getAllCustomFields obtains all custom fields in a group. static function getAllCustomFields($group_id) { $mdb2 = getConnection(); @@ -565,7 +565,7 @@ class ttTeamHelper { return false; } - // The getAllCustomFieldOptions obtains all custom field options in a given team. + // The getAllCustomFieldOptions obtains all custom field options in a group. static function getAllCustomFieldOptions($group_id) { $mdb2 = getConnection(); @@ -582,7 +582,7 @@ class ttTeamHelper { return false; } - // The getCustomFieldLog obtains all custom field log entries for a given team. + // The getCustomFieldLog obtains all custom field log entries for a group. static function getCustomFieldLog($group_id) { $mdb2 = getConnection(); @@ -599,7 +599,7 @@ class ttTeamHelper { return false; } - // getFavReports - obtains all favorite reports for all users in team. + // getFavReports - obtains all favorite reports for all users in a group. static function getFavReports($group_id) { $mdb2 = getConnection(); @@ -616,7 +616,7 @@ class ttTeamHelper { return false; } - // getExpenseItems - obtains all expense items for all users in team. + // getExpenseItems - obtains all expense items for all users in a group. static function getExpenseItems($group_id) { $mdb2 = getConnection(); @@ -633,7 +633,7 @@ class ttTeamHelper { return false; } - // getPredefinedExpenses - obtains predefined expenses for team. + // getPredefinedExpenses - obtains predefined expenses for a group. static function getPredefinedExpenses($group_id) { global $user; $replaceDecimalMark = ('.' != $user->decimal_mark); @@ -655,7 +655,7 @@ class ttTeamHelper { return false; } - // getNotifications - obtains notification descriptions for team. + // getNotifications - obtains notification descriptions for a group. static function getNotifications($group_id) { $mdb2 = getConnection(); @@ -674,7 +674,7 @@ class ttTeamHelper { return false; } - // getMonthlyQuotas - obtains monthly quotas for team. + // getMonthlyQuotas - obtains monthly quotas for a group. static function getMonthlyQuotas($group_id) { $mdb2 = getConnection(); @@ -691,10 +691,10 @@ class ttTeamHelper { return false; } - // The markDeleted function marks the team and everything in it as deleted. + // The markDeleted function marks the group and everything in it as deleted. static function markDeleted($group_id) { - // Iterate through team users and mark them as deleted. + // Iterate through group users and mark them as deleted. $users = ttTeamHelper::getAllUsers($group_id); foreach ($users as $one_user) { if (!ttUserHelper::markDeleted($one_user['id'])) return false; @@ -733,13 +733,13 @@ class ttTeamHelper { return true; } - // The insert function creates a new team. + // The insert function creates a new group. static function insert($fields) { global $user; $mdb2 = getConnection(); - // Start with team name and currency. + // Start with group name and currency. $columns = 'name, currency'; $values = $mdb2->quote(trim($fields['name'])).', '.$mdb2->quote(trim($fields['currency'])); @@ -833,59 +833,12 @@ class ttTeamHelper { return false; } - // The update function updates team information. - static function update($group_id, $fields) - { - global $user; - $mdb2 = getConnection(); - $name_part = 'name = '.$mdb2->quote($fields['name']); - $currency_part = ''; - $lang_part = ''; - $decimal_mark_part = ''; - $date_format_part = ''; - $time_format_part = ''; - $week_start_part = ''; - $tracking_mode_part = ''; - $task_required_part = ' , task_required = '.(int) $fields['task_required']; - $record_type_part = ''; - $bcc_email_part = ''; - $allow_ip = ''; - $plugins_part = ''; - $config_part = ''; - $lock_spec_part = ''; - $workday_minutes_part = ''; - - if (isset($fields['currency'])) $currency_part = ', currency = '.$mdb2->quote($fields['currency']); - if (isset($fields['lang'])) $lang_part = ', lang = '.$mdb2->quote($fields['lang']); - if (isset($fields['decimal_mark'])) $decimal_mark_part = ', decimal_mark = '.$mdb2->quote($fields['decimal_mark']); - if (isset($fields['date_format'])) $date_format_part = ', date_format = '.$mdb2->quote($fields['date_format']); - if (isset($fields['time_format'])) $time_format_part = ', time_format = '.$mdb2->quote($fields['time_format']); - if (isset($fields['week_start'])) $week_start_part = ', week_start = '.(int) $fields['week_start']; - if (isset($fields['tracking_mode'])) $tracking_mode_part = ', tracking_mode = '.(int) $fields['tracking_mode']; - if (isset($fields['record_type'])) $record_type_part = ', record_type = '.(int) $fields['record_type']; - if (isset($fields['bcc_email'])) $bcc_email_part = ', bcc_email = '.$mdb2->quote($fields['bcc_email']); - if (isset($fields['allow_ip'])) $allow_ip_part = ', allow_ip = '.$mdb2->quote($fields['allow_ip']); - if (isset($fields['plugins'])) $plugins_part = ', plugins = '.$mdb2->quote($fields['plugins']); - if (isset($fields['config'])) $config_part = ', config = '.$mdb2->quote($fields['config']); - if (isset($fields['lock_spec'])) $lock_spec_part = ', lock_spec = '.$mdb2->quote($fields['lock_spec']); - if (isset($fields['workday_minutes'])) $workday_minutes_part = ', workday_minutes = '.$mdb2->quote($fields['workday_minutes']); - $modified_part = ', modified = now(), modified_ip = '.$mdb2->quote($_SERVER['REMOTE_ADDR']).', modified_by = '.$mdb2->quote($user->id); - - $sql = "update tt_groups set $name_part $currency_part $lang_part $decimal_mark_part - $date_format_part $time_format_part $week_start_part $tracking_mode_part $task_required_part $record_type_part - $bcc_email_part $allow_ip_part $plugins_part $config_part $lock_spec_part $workday_minutes_part $modified_part where id = $group_id"; - $affected = $mdb2->exec($sql); - if (is_a($affected, 'PEAR_Error')) return false; - - return true; - } - - // The getInactiveTeams is a maintenance function that returns an array of inactive team ids (max 100). - static function getInactiveTeams() { - $inactive_teams = array(); + // The getInactiveGroups is a maintenance function that returns an array of inactive group ids (max 100). + static function getInactiveGroups() { + $inactive_groups = array(); $mdb2 = getConnection(); - // Get all team ids for teams created or modified more than 8 months ago. + // Get all group ids for groups created or modified more than 8 months ago. // $ts = date('Y-m-d', strtotime('-1 year')); $ts = $mdb2->quote(date('Y-m-d', strtotime('-8 month'))); $sql = "select id from tt_groups where created < $ts and (modified is null or modified < $ts) order by id"; @@ -895,20 +848,20 @@ class ttTeamHelper { if (!is_a($res, 'PEAR_Error')) { while ($val = $res->fetchRow()) { $group_id = $val['id']; - if (ttTeamHelper::isTeamActive($group_id) == false) { + if (ttTeamHelper::isGroupActive($group_id) == false) { $count++; - $inactive_teams[] = $group_id; + $inactive_groups[] = $group_id; // Limit the array size for perfomance by allowing this operation on small chunks only. if ($count >= 100) break; } } - return $inactive_teams; + return $inactive_groups; } return false; } - // The isTeamActive determines if a team is using Time Tracker or abandoned it. - static function isTeamActive($group_id) { + // The isGroupActive determines if a group is using Time Tracker or abandoned it. + static function isGroupActive($group_id) { $users = array(); $mdb2 = getConnection(); @@ -920,7 +873,7 @@ class ttTeamHelper { } $user_list = implode(',', $users); // This is a comma-separated list of user ids. if (!$user_list) - return false; // No users in team. + return false; // No users in group. $count = 0; $ts = date('Y-m-d', strtotime('-2 years')); @@ -936,7 +889,7 @@ class ttTeamHelper { return false; // No time entries for the last 2 years. if ($count <= 5) { - // We will consider a team inactive if it has 5 or less time entries made more than 1 year ago. + // We will consider a group inactive if it has 5 or less time entries made more than 1 year ago. $count_last_year = 0; $ts = date('Y-m-d', strtotime('-1 year')); $sql = "select count(*) as cnt from tt_log where user_id in ($user_list) and created > '$ts'"; @@ -952,7 +905,7 @@ class ttTeamHelper { return true; } - // The delete function permanently deletes all data for a team. + // The delete function permanently deletes all data for a group. static function delete($group_id) { $mdb2 = getConnection(); @@ -1004,7 +957,7 @@ class ttTeamHelper { return true; } - // The markTasksDeleted deletes task binds and marks the tasks as deleted for a team. + // The markTasksDeleted deletes task binds and marks the tasks as deleted for a group. static function markTasksDeleted($group_id) { $mdb2 = getConnection(); $sql = "select id from tt_tasks where group_id = $group_id"; @@ -1028,7 +981,7 @@ class ttTeamHelper { return true; } - // The deleteTasks deletes all tasks and task binds for an inactive team. + // The deleteTasks deletes all tasks and task binds for an inactive group. static function deleteTasks($group_id) { $mdb2 = getConnection(); $sql = "select id from tt_tasks where group_id = $group_id"; @@ -1052,7 +1005,7 @@ class ttTeamHelper { return true; } - // The deleteCustomFields cleans up tt_custom_field_log, tt_custom_field_options and tt_custom_fields tables for an inactive team. + // The deleteCustomFields cleans up tt_custom_field_log, tt_custom_field_options and tt_custom_fields tables for an inactive group. static function deleteCustomFields($group_id) { $mdb2 = getConnection(); $sql = "select id from tt_custom_fields where group_id = $group_id"; @@ -1080,31 +1033,4 @@ class ttTeamHelper { return true; } - - // enablePlugin either enables or disables a specific plugin for team. - static function enablePlugin($plugin, $enable = true) - { - global $user; - if (!$user->can('manage_features')) - return false; - - $plugin_array = explode(',', $user->plugins); - if ($enable && !in_array($plugin, $plugin_array)) - $plugin_array[] = $plugin; // Add plugin to array. - - if (!$enable && in_array($plugin, $plugin_array)) { - $key = array_search($plugin, $plugin_array); - if ($key !== false) - unset($plugin_array[$key]); // Remove plugin from array. - } - - $plugins = implode(',', $plugin_array); - if ($plugins != $user->plugins) { - if (!ttTeamHelper::update($user->group_id, array('name' => $user->group,'plugins' => $plugins))) - return false; - $user->plugins = $plugins; - } - - return true; - } }