$is_owner = $permission->isOwner($user->getCreatedBy(), $user->getId()); $is_child = $permission->isChild($user->getId(), $permission_children_ids); if ($permission->Check('user', 'edit') or $permission->Check('user', 'edit_own') and $is_owner === TRUE or $permission->Check('user', 'edit_child') and $is_child === TRUE) { $user_title = NULL; if ($user->getTitle() != 0 and is_object($user->getTitleObject())) { $user_title = $user->getTitleObject()->getName(); } Debug::Text('Title: ' . $user_title, __FILE__, __LINE__, __METHOD__, 10); if ($permission->Check('user', 'view_sin') == TRUE) { $sin_number = $user->getSIN(); } else { $sin_number = $user->getSecureSIN(); } $user_data = array('id' => $user->getId(), 'company_id' => $user->getCompany(), 'status' => $user->getStatus(), 'user_name' => $user->getUserName(), 'title_id' => $user->getTitle(), 'title' => $user_title, 'phone_id' => $user->getPhoneId(), 'ibutton_id' => $user->getIbuttonId(), 'employee_number' => $user->getEmployeeNumber(), 'first_name' => $user->getFirstName(), 'middle_name' => $user->getMiddleName(), 'last_name' => $user->getLastName(), 'second_last_name' => $user->getSecondLastName(), 'sex' => $user->getSex(), 'address1' => $user->getAddress1(), 'address2' => $user->getAddress2(), 'city' => $user->getCity(), 'province' => $user->getProvince(), 'country' => $user->getCountry(), 'postal_code' => $user->getPostalCode(), 'work_phone' => $user->getWorkPhone(), 'work_phone_ext' => $user->getWorkPhoneExt(), 'home_phone' => $user->getHomePhone(), 'mobile_phone' => $user->getMobilePhone(), 'fax_phone' => $user->getFaxPhone(), 'home_email' => $user->getHomeEmail(), 'work_email' => $user->getWorkEmail(), 'birth_date' => $user->getBirthDate(), 'hire_date' => $user->getHireDate(), 'termination_date' => $user->getTerminationDate(), 'sin' => $sin_number, 'other_id1' => $user->getOtherID1(), 'other_id2' => $user->getOtherID2(), 'other_id3' => $user->getOtherID3(), 'other_id4' => $user->getOtherID4(), 'other_id5' => $user->getOtherID5(), 'note' => $user->getNote(), 'default_branch_id' => $user->getDefaultBranch(), 'default_department_id' => $user->getDefaultDepartment(), 'group_id' => $user->getGroup(), 'currency_id' => $user->getCurrency(), 'is_owner' => $is_owner, 'is_child' => $is_child, 'created_date' => $user->getCreatedDate(), 'created_by' => $user->getCreatedBy(), 'updated_date' => $user->getUpdatedDate(), 'updated_by' => $user->getUpdatedBy(), 'deleted_date' => $user->getDeletedDate(), 'deleted_by' => $user->getDeletedBy()); $pclfb = new PermissionControlListFactory(); $pclfb->getByCompanyIdAndUserId($user->getCompany(), $id); if ($pclfb->getRecordCount() > 0) { $user_data['permission_control_id'] = $pclfb->getCurrent()->getId(); } $ppslfb = new PayPeriodScheduleListFactory(); $ppslfb->getByUserId($id); if ($ppslfb->getRecordCount() > 0) { $user_data['pay_period_schedule_id'] = $ppslfb->getCurrent()->getId(); } $pglf = new PolicyGroupListFactory(); $pglf->getByUserIds($id); if ($pglf->getRecordCount() > 0) { $user_data['policy_group_id'] = $pglf->getCurrent()->getId(); } $hclf = new HierarchyControlListFactory(); $hclf->getObjectTypeAppendedListByCompanyIDAndUserID($user->getCompany(), $user->getID());
$uglf = new UserGroupListFactory(); $group_options = $uglf->getArrayByNodes(FastTree::FormatArray($uglf->getByCompanyIdArray($current_company->getId()), 'no_tree_text', TRUE)); //Get default branch list $blf = new BranchListFactory(); $branch_options = $blf->getByCompanyIdArray($current_company->getId()); $dlf = new DepartmentListFactory(); $department_options = $dlf->getByCompanyIdArray($current_company->getId()); $pclf = new PermissionControlListFactory(); $pclf->getByCompanyId($current_company->getId()); $permission_control_options = $pclf->getArrayByListFactory($pclf, TRUE); $ppslf = new PayPeriodScheduleListFactory(); $pay_period_schedule_options = $ppslf->getByCompanyIDArray($current_company->getId()); $pglf = new PolicyGroupListFactory(); $policy_group_options = $pglf->getByCompanyIDArray($current_company->getId()); $pclf = new PermissionControlListFactory(); $pclf->getByCompanyIdAndUserId($current_company->getId(), $filter_data['user_ids']); $permission_control_user_map = $pclf->getUserToPermissionControlMapArrayByListFactory($pclf); $ppslf = new PayPeriodScheduleListFactory(); $ppslf->getByCompanyIdAndUserId($current_company->getId(), $filter_data['user_ids']); $pay_period_schedule_user_map = $ppslf->getUserToPayPeriodScheduleMapArrayByListFactory($ppslf); $pglf = new PolicyGroupListFactory(); $pglf->getByCompanyIdAndUserId($current_company->getId(), $filter_data['user_ids']); $policy_group_user_map = $pglf->getUserToPolicyGroupMapArrayByListFactory($pglf); $crlf = new CurrencyListFactory(); $crlf->getByCompanyId($current_company->getId()); $currency_options = $crlf->getArrayByListFactory($crlf, FALSE, TRUE); $upf = new UserPreferenceFactory(); $language_options = TTi18n::getLanguageArray(); $date_format_options = $upf->getOptions('date_format'); $time_format_options = $upf->getOptions('time_format'); $time_unit_format_options = $upf->getOptions('time_unit_format');
//Debug::setVerbosity( 11 ); Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10); $pf = new PermissionFactory(); $pcf->StartTransaction(); $pcf->setId($data['id']); $pcf->setCompany($current_company->getId()); $pcf->setName($data['name']); $pcf->setDescription($data['description']); //Check to make sure the currently logged in user is NEVER in the unassigned //user list. This prevents an administrator from accidently un-assigning themselves //from a group and losing all permissions. if (in_array($current_user->getId(), (array) $src_user_id)) { //Check to see if current user is assigned to another permission group. $current_user_failed = FALSE; $pclf = new PermissionControlListFactory(); $pclf->getByCompanyIdAndUserId($current_company->getId(), $current_user->getId()); if ($pclf->getRecordCount() == 0) { $current_user_failed = TRUE; } else { foreach ($pclf as $pc_obj) { if ($pc_obj->getId() == $data['id']) { $current_user_failed = TRUE; } } } unset($pclf, $pc_obj); if ($current_user_failed == TRUE) { $pcf->Validator->isTrue('user', FALSE, TTi18n::gettext('You can not unassign yourself from a permission group, assign yourself to a new group instead')); } } if ($pcf->isValid()) {