function createPermissionGroups($company_id) { Debug::text('Adding Preset Permission Groups: ' . $company_id, __FILE__, __LINE__, __METHOD__, 9); $pf = new PermissionFactory(); $pf->StartTransaction(); if (getTTProductEdition() == 20) { $preset_flags = array('invoice' => 0, 'job' => 1, 'document' => 0); /* $preset_flags = array( 'job' => 1, 'invoice' => 1, 'document' => 1, ); */ } else { $preset_flags = array(); } $preset_options = $pf->getOptions('preset'); foreach ($preset_options as $preset_id => $preset_name) { $pcf = new PermissionControlFactory(); $pcf->setCompany($company_id); $pcf->setName($preset_name); $pcf->setDescription(''); if ($pcf->isValid()) { $pcf_id = $pcf->Save(FALSE); $this->permission_presets[$preset_id] = $pcf_id; $pf->applyPreset($pcf_id, $preset_id, $preset_flags); } } //$pf->FailTransaction(); $pf->CommitTransaction(); }
if (isset($data['permissions']) and is_array($data['permissions']) and count($data['permissions']) > 0) { $pcf->setPermission($data['permissions'], $old_data['permissions']); } } if ($pcf->isValid()) { $pcf->Save(TRUE); if (DEMO_MODE == FALSE) { if ($action == 'apply_preset') { Debug::Text('Attempting to apply preset...', __FILE__, __LINE__, __METHOD__, 10); if (!isset($data['preset_flags'])) { $data['preset_flags'] = array(); } if ($pcf_id != '' and isset($data['preset'])) { Debug::Text('Applying Preset!', __FILE__, __LINE__, __METHOD__, 10); $pf = new PermissionFactory(); $pf->applyPreset($pcf_id, $data['preset'], $data['preset_flags']); } } } //$pcf->FailTransaction(); $pcf->CommitTransaction(); Redirect::Page(URLBuilder::getURL(array(), 'PermissionControlList.php')); break; } } $pcf->FailTransaction(); default: $pf = new PermissionFactory(); $plf = new PermissionListFactory(); if (isset($id)) { BreadCrumb::setCrumb($title);
function postSave() { $this->removeCache($this->getId()); $this->remoteSave(); if ($this->getDeleted() == FALSE) { //Add base currency for this new company. if ($this->getEnableAddCurrency() == TRUE) { $clf = new CurrencyListFactory(); $clf->getByCompanyId($this->getId()); if ($clf->getRecordCount() == 0) { Debug::text('Adding Default Currency', __FILE__, __LINE__, __METHOD__, 9); $cf = new CurrencyFactory(); $country_to_currency_map_arr = $cf->getOptions('country_currency'); if (isset($country_to_currency_map_arr[$this->getCountry()])) { $base_currency = $country_to_currency_map_arr[$this->getCountry()]; Debug::text('Found Base Currency For Country: ' . $this->getCountry() . ' Currency: ' . $base_currency, __FILE__, __LINE__, __METHOD__, 9); } else { Debug::text('DID NOT Find Base Currency For Country: ' . $this->getCountry() . ' Using default USD.', __FILE__, __LINE__, __METHOD__, 9); $base_currency = 'USD'; } $cf->setCompany($this->getId()); $cf->setStatus(10); $cf->setName($base_currency); $cf->setISOCode($base_currency); $cf->setConversionRate('1.000000000'); $cf->setAutoUpdate(FALSE); $cf->setBase(TRUE); $cf->setDefault(TRUE); if ($cf->isValid()) { $cf->Save(); } } } if ($this->getEnableAddPermissionGroupPreset() == TRUE) { Debug::text('Adding Preset Permission Groups', __FILE__, __LINE__, __METHOD__, 9); $pf = new PermissionFactory(); $pf->StartTransaction(); if ($this->getProductEdition() == 20) { $preset_flags = array('job' => 1, 'invoice' => 1, 'document' => 1); } else { $preset_flags = array(); } $preset_options = $pf->getOptions('preset'); foreach ($preset_options as $preset_id => $preset_name) { $pcf = new PermissionControlFactory(); $pcf->setCompany($this->getId()); $pcf->setName($preset_name); $pcf->setDescription(''); if ($pcf->isValid()) { $pcf_id = $pcf->Save(FALSE); $pf->applyPreset($pcf_id, $preset_id, $preset_flags); } } //$pf->FailTransaction(); $pf->CommitTransaction(); } if ($this->getEnableAddStation() == TRUE) { Debug::text('Adding Default Station', __FILE__, __LINE__, __METHOD__, 9); //Enable punching in from all stations $sf = new StationFactory(); $sf->setCompany($this->getId()); $sf->setStatus(20); $sf->setType(10); $sf->setSource('ANY'); $sf->setStation('ANY'); $sf->setDescription('All stations'); $sf->setGroupSelectionType(10); $sf->setBranchSelectionType(10); $sf->setDepartmentSelectionType(10); if ($sf->isValid()) { $sf->Save(); } } if ($this->getEnableAddPayStubEntryAccountPreset() == TRUE) { Debug::text('Adding Pay Stub Entry Account Presets', __FILE__, __LINE__, __METHOD__, 9); PayStubEntryAccountFactory::addPresets($this->getId()); } if ($this->getEnableAddCompanyDeductionPreset() == TRUE) { Debug::text('Adding Company Deduction Presets', __FILE__, __LINE__, __METHOD__, 9); CompanyDeductionFactory::addPresets($this->getId()); } if ($this->getEnableAddRecurringHolidayPreset() == TRUE) { Debug::text('Adding Recurring Holiday Presets', __FILE__, __LINE__, __METHOD__, 9); RecurringHolidayFactory::addPresets($this->getId(), $this->getCountry()); } } if ($this->getDeleted() == TRUE) { $ulf = new UserListFactory(); $ulf->getByCompanyId($this->getID()); if ($ulf->getRecordCount() > 0) { $ulf->StartTransaction(); foreach ($ulf as $u_obj) { Debug::text('Deleting User ID: ' . $u_obj->getId(), __FILE__, __LINE__, __METHOD__, 9); $u_obj->setDeleted(TRUE); if ($u_obj->isValid()) { $u_obj->Save(); } } $ulf->CommitTransaction(); } } return TRUE; }
echo "Found user, apply administrator permissions...\n"; ob_flush(); $u_obj = $ulf->getCurrent(); //Create new Permission Group just for this purpose. $pf = new PermissionFactory(); $pf->StartTransaction(); $preset_flags = array(); $preset_options = $pf->getOptions('preset'); $pcf = new PermissionControlFactory(); $pcf->setCompany($u_obj->getCompany()); $pcf->setName('Administrator Fix (' . rand(1, 1000) . ')'); $pcf->setDescription('Created By set_admin_permissions.php'); if ($pcf->isValid()) { $pcf_id = $pcf->Save(FALSE); $pcf->setUser(array($u_obj->getId())); $pcf->Save(); if ($pf->applyPreset($pcf_id, 40, $preset_flags) == TRUE) { echo "Success!\n"; } } //$pf->FailTransaction(); $pf->CommitTransaction(); } elseif ($ulf->getRecordCount() > 2) { echo "Found more then one user with the same user name, not updating permissions!\n"; } else { echo "User name not found!\n"; } } } echo "WARNING: Clear TimeTrex cache after running this.\n"; //Debug::Display();