function allowed_users_to_assign() { $context_plain = array_var($_GET, 'context'); $context = null; if (!is_null($context_plain)) { $context = build_context_array($context_plain); } $comp_array = allowed_users_to_assign_all($context); $object = array("companies" => $comp_array); if (!can_manage_tasks(logged_user()) && can_task_assignee(logged_user())) { $object['only_me'] = "1"; } ajx_extra_data($object); ajx_current("empty"); }
function allowed_users_to_assign() { $members = array(); $member_ids = explode(',', array_var($_GET, 'member_ids')); if (count($member_ids) > 0) { $tmp_members = Members::findAll(array('conditions' => 'id IN (' . implode(',', $member_ids) . ')')); foreach ($tmp_members as $m) { if ($m->getDimension()->getIsManageable()) { $members[] = $m; } } } if (count($members) == 0) { $context_plain = array_var($_GET, 'context'); $context = null; if (!is_null($context_plain)) { $context = build_context_array($context_plain); } } else { $context = $members; } $comp_array = allowed_users_to_assign($context); $object = array("companies" => $comp_array); Hook::fire('modify_allowed_users_to_assign', array('params' => array_var($_REQUEST, 'extra_params')), $object); if (!can_manage_tasks(logged_user()) && can_task_assignee(logged_user())) { $object['only_me'] = "1"; } ajx_extra_data($object); ajx_current("empty"); }
function allowed_users_to_assign_all_mobile($member_id = null) { if ($member_id == null) { $context = active_context(); }else{ $member = Members::findById($member_id); if ($member instanceof Member){ $context[] = $member; } } // only companies with users $companies = Contacts::findAll(array("conditions" => "is_company = 1 AND object_id IN (SELECT company_id FROM ".TABLE_PREFIX."contacts WHERE user_type>0 AND disabled=0)", "order" => "first_name ASC")); $comp_ids = array("0"); $comp_array = array("0" => array('id' => "0", 'name' => lang('without company'), 'users' => array() )); foreach ($companies as $company) { $comp_ids[] = $company->getId(); $comp_array[$company->getId()] = array('id' => $company->getId(), 'name' => $company->getObjectName(), 'users' => array() ); } if(!can_manage_tasks(logged_user()) && can_task_assignee(logged_user())) { $contacts = array(logged_user()); } else if (can_manage_tasks(logged_user())) { $contacts = allowed_users_in_context(ProjectTasks::instance()->getObjectTypeId(), $context, ACCESS_LEVEL_READ, "AND `is_company`=0 AND `company_id` IN (".implode(",", $comp_ids).")"); } else { $contacts = array(); } foreach ($contacts as $contact) { /* @var $contact Contact */ if ( TabPanelPermissions::instance()->count( array( "conditions" => "permission_group_id = ".$contact->getPermissionGroupId(). " AND tab_panel_id = 'tasks-panel' " ))){ $comp_array[$contact->getCompanyId()]['users'][] = array('id' => $contact->getId(), 'name' => $contact->getObjectName(), 'isCurrent' => $contact->getId() == logged_user()->getId()); } } foreach ($comp_array as $company_id => &$comp_data) { if (count($comp_data['users']) == 0) { unset($comp_array[$company_id]); } } return array_values($comp_array); }
function allowed_users_to_assign_all($context = null) { if ($context == null) { $context = active_context(); } // only companies with users $companies = Contacts::findAll(array("conditions" => "e.is_company = 1 AND EXISTS (SELECT object_id FROM " . TABLE_PREFIX . "contacts WHERE is_company = 0 AND user_type > 0 AND company_id = o.id )", "join" => array("table" => Contacts::instance()->getTableName(), "jt_field" => "object_id", "j_sub_q" => "SELECT xx.object_id FROM " . Contacts::instance()->getTableName(true) . " xx WHERE xx.is_company=0 AND xx.company_id = e.object_id LIMIT 1"), "order" => "name")); $comp_ids = array("0"); $comp_array = array("0" => array('id' => "0", 'name' => lang('without company'), 'users' => array())); foreach ($companies as $company) { $comp_ids[] = $company->getId(); $comp_array[$company->getId()] = array('id' => $company->getId(), 'name' => $company->getObjectName(), 'users' => array()); } if (!can_manage_tasks(logged_user()) && can_task_assignee(logged_user())) { $contacts = array(logged_user()); } else { if (can_manage_tasks(logged_user())) { $contacts = allowed_users_in_context(ProjectTasks::instance()->getObjectTypeId(), $context, ACCESS_LEVEL_READ, "AND `is_company`=0 AND `company_id` IN (" . implode(",", $comp_ids) . ")"); } else { $contacts = array(); } } foreach ($contacts as $contact) { /* @var $contact Contact */ if (TabPanelPermissions::instance()->count(array("conditions" => "permission_group_id = " . $contact->getPermissionGroupId() . " AND tab_panel_id = 'tasks-panel' "))) { $comp_array[]['users'][] = array('id' => $contact->getId(), 'name' => $contact->getObjectName(), 'isCurrent' => $contact->getId() == logged_user()->getId()); } } return array_values($comp_array); }