/** * * Function Deletes a Role, and sets all users of the deleted Role * to the selected Role from Combobox * * @param sfWebRequest $request * @return <type> */ public function executeDeleteRole(sfWebRequest $request) { $rows = UserLoginTable::instance()->changeRole($request->getParameter('updateid'),$request->getParameter('deleteid')); CredentialRoleTable::instance()->deleteRoleById($request->getParameter('deleteid')); RoleTable::instance()->deleteRole($request->getParameter('deleteid')); $this->renderText($rows); return sfView::NONE; }
/** * get all running stations in the system * * @param Doctrine_Collection $data, data with running station * @return array $result */ public function getRunningStation(Doctrine_Collection $data) { $result = array(); $a = 0; foreach($data as $item) { $result[$a]['id'] = $item->getUserId(); $user = UserLoginTable::instance()->findUserById($item->getUserId()); $result[$a++]['name'] = $user[0]->getUsername(); } $result = $this->mergeArray($result); return $result; }
public function setData() { $userSettings = UserSettingTable::instance()->getUserSettingById($this->user_id)->toArray(); $replayAdress = EmailConfigurationTable::instance()->getEmailConfiguration()->toArray(); $userLogin = UserLoginTable::instance()->findActiveUserById($this->user_id); $userData = UserDataTable::instance()->getUserDataByUserId($this->user_id)->toArray(); $this->userSettings = $userSettings[0]; $this->userSettings['systemreplyaddress'] = $replayAdress[0]['systemreplyaddress']; $this->userData['username'] = $userLogin[0]->getUsername(); $this->userData['user_id'] = $userLogin[0]->getId(); $this->userData['email'] = $userLogin[0]->getEmail(); $this->userData['firstname'] = $userData[0]['firstname']; $this->userData['lastname'] = $userData[0]['lastname']; }
/** * Action to login the user and set its role, and userid * currently only cuteflow database can be used to login * * @todo LDAP and OpenID login * @param sfWebRequest $request * @return <type> */ public function executeDoLogin(sfWebRequest $request) { $result = UserLoginTable::instance()->findUserByNameAndPassword($request->getPostParameter('username'), $request->getPostParameter('userpassword')); if($result[0]->getUserName() == $request->getPostParameter('username') AND $result[0]->getPassword() == $request->getPostParameter('userpassword')) { $this->getUser()->setAuthenticated(true); $this->getUser()->setAttribute('id',$result[0]->getId()); $this->getUser()->setAttribute('userrole',$result[0]->getRoleId()); $this->getUser()->setCulture($request->getPostParameter('hiddenfield_language')); $this->getUser()->setAttribute('env', str_replace('/', '', $request->getPostParameter('hidden_symfonyurl'))); $this->renderText('{success:true,value:"1"}'); } else { $this->renderText('{success:true, text:"'.$this->getContext()->getI18N()->__('Failure during login process',null,'login').'", title: "'.$this->getContext()->getI18N()->__('Error',null,'login').'"}'); } return sfView::NONE; }
/** * Add Users to a slot * * @param String $slotname, slotname * @param int $workflowslot_id, id of the slot * @param int $slotcounter, number of the slot * @return array $result */ public function getUser($slotname, $workflowslot_id, $slotcounter) { $users = WorkflowSlotUserTable::instance()->getUserBySlotId($workflowslot_id); $result = array(); $a = 0; foreach($users as $user) { $userLogin = UserLoginTable::instance()->findActiveUserById($user->getUserId()); $userData = $userLogin[0]->getUserData()->toArray(); $result[$a]['workflowslotuser_id'] = $user->getId(); $result[$a]['user_id'] = $user->getUserId(); $result[$a]['userposition'] = $user->getPosition(); $result[$a]['slotgroup'] = '#' . ($slotcounter-1) . ' : ' . $slotname; $result[$a]['plainusername'] = $userData['firstname'] . ' ' . $userData['lastname']; $result[$a]['username'] = $userData['firstname'] . ' ' . $userData['lastname'] . ' <i>'.$userLogin[0]->getUsername().'</i>'; $a++; } return $result; }
/** * Function sends systemmesage, and loads all sender * * @param sfWebRequest $request * @return <type> */ public function executeSendMail(sfWebRequest $request) { $subject = $request->getParameter('subject'); $type = $request->getParameter('type'); $content = $request->getParameter('description'); $decission = $request->getParameter('receiver'); switch ($decission) { case 'ALL': $users = UserLoginTable::instance()->getAllUser(-1, -1)->toArray(); // load all user break; case 'SENDER': $users = WorkflowTemplateTable::instance()->getWorkflowSender()->toArray(); // load sender only break; case 'ONLINE': $currentTime = time(); $fiveMinutes = (1 * 60)*5; $fiveMinutesAgo = $currentTime - $fiveMinutes; $users = UserDataTable::instance()->getOnlineUser($fiveMinutesAgo)->toArray(); // user which are online for about 5mins^^ break; } // send messages foreach($users as $user) { if($decission == 'SENDER') { $userData = new UserMailSettings($user['sender_id']); } elseif ($decission == 'ALL') { $userData = new UserMailSettings($user['id']); } else { $userData = new UserMailSettings($user['user_id']); } $send = new SendMessage(); $send->sendSystemMail($userData, $subject, $content, $type); } $this->renderText('{success:true}'); return sfView::NONE; }
/** * Load all user, which are able to send a worklfow * @param sfWebRequest $request * @return <type> */ public function executeLoadSender(sfWebRequest $request) { $result = UserLoginTable::instance()->getAllSenderUser()->toArray(); $this->renderText('{"result":'.json_encode($result).'}'); return sfView::NONE; }
/** * Create the config file with the database settings and write email settings * * @param sfWebRequest $request * @return <type> */ public function executeSaveData(sfWebRequest $request) { $sysObj = new SystemSetting(); $installer = new Installer(); $data = $request->getPostParameters(); $installer->createConfigFile($data); // write settings in database.yml // create DB $task = new sfDoctrineBuildAllReLoadTask(sfContext::getInstance()->getEventDispatcher(), new sfFormatter()); chdir(sfConfig::get('sf_root_dir')); $task->run(array(),array('--no-confirmation', '--env=all', '--dir='.sfConfig::get('sf_root_dir').'/data/fixtures/'.$data['productive_data'].'')); $data = $sysObj->buildEmailSetting($data); UserLoginTable::instance()->updateEmail($data['productive_emailadresse']); EmailConfigurationTable::instance()->updateEmailConfiguration($data); // clear cache $taskCC = new sfCacheClearTask(sfContext::getInstance()->getEventDispatcher(), new sfFormatter()); $taskCC->run(array(), array()); // create JS Cache $ccCache = new TemplateCaching(); $ccCache->checkCacheDir(); $ccCache->setFiles(); $lastModified = $ccCache->getLastModifiedFile(); $cacheCreated = $ccCache->getCurrentCacheStamp(); if($lastModified > $cacheCreated OR $cacheCreated == '') { if($cacheCreated == '') { $cacheCreated = $lastModified; } $ccCache->createCache($lastModified, $cacheCreated); } // return success, then JS redirect $this->renderText('{success:true}'); return sfView::NONE; }
public function mergeArray(array $data) { $result = array(); $slotcounter = 0; $userdata = array(); $usercounter = 0; for($a=0;$a<count($data);$a++) { $result[$a]['slotname'] = $data[$a]['slotname']; $result[$a]['workflowslot_id'] = $data[$a]['workflowslot_id']; $result[$a]['sendtoallreceivers'] = $data[$a]['sendtoallreceivers']; $result[$a]['senttoallatonce'] = $data[$a]['senttoallatonce']; $result[$a]['slot_id'] = $data[$a]['slot_id']; for($b=0;$b<count($data[$a]['user']);$b++) { $userData = $data[$a]['user'][$b]; if(isset($userData['user'][0]) == true) { for($d=0;$d<count($userData['user']);$d++) { $decission = $userData['user'][$d]; $result[$a]['user'][$usercounter]['user_id'] = $userData['user_id']; $result[$a]['user'][$usercounter]['id'] = $userData['id']; $result[$a]['user'][$usercounter]['username'] = $userData['username']; $result[$a]['user'][$usercounter]['plainusername'] = $userData['plainusername']; $result[$a]['user'][$usercounter]['slotgroup'] = $userData['slotgroup']; $result[$a]['user'][$usercounter]['templateversion_id'] = $userData['templateversion_id']; $result[$a]['user'][$usercounter]['useragent_id'] = $decission['useragent_id']; $result[$a]['user'][$usercounter]['isuseragentof'] = $decission['isuseragentof']; $result[$a]['user'][$usercounter]['workflowprocess_id'] = $decission['workflowprocess_id']; $result[$a]['user'][$usercounter]['workflowslotuser_id'] = $decission['workflowslotuser_id']; $result[$a]['user'][$usercounter]['inprogresssince'] = $decission['inprogresssince']; $result[$a]['user'][$usercounter]['decissionstate'] = $decission['decissionstate']; $result[$a]['user'][$usercounter]['dateofdecission'] = $decission['dateofdecission']; $result[$a]['user'][$usercounter]['isuseragentof'] = $decission['isuseragentof']; $result[$a]['user'][$usercounter]['received'] = $decission['received']; $result[$a]['user'][$usercounter]['decission_id'] = $decission['decission_id']; $result[$a]['user'][$usercounter]['endreasion'] = $decission['endreasion']; $result[$a]['user'][$usercounter]['decissioninwords'] = $decission['decissioninwords']; if($result[$a]['user'][$usercounter]['isuseragentof'] != '') { $userAgent = UserLoginTable::instance()->findActiveUserById($result[$a]['user'][$usercounter]['useragent_id'])->toArray(); $result[$a]['user'][$usercounter]['username'] = '******' . $userAgent[0]['username'] . '</td></tr></table>'; } $usercounter++; } } else { $result[$a]['user'][$usercounter]['user_id'] = $userData['user_id']; $result[$a]['user'][$usercounter]['id'] = $userData['id']; $result[$a]['user'][$usercounter]['username'] = $userData['username']; $result[$a]['user'][$usercounter]['plainusername'] = $userData['plainusername']; $result[$a]['user'][$usercounter]['slotgroup'] = $userData['slotgroup']; $result[$a]['user'][$usercounter]['templateversion_id'] = $userData['templateversion_id']; $result[$a]['user'][$usercounter]['useragent_id'] = ''; $result[$a]['user'][$usercounter]['isuseragentof'] = ''; $result[$a]['user'][$usercounter]['workflowprocess_id'] = ''; $result[$a]['user'][$usercounter]['workflowslotuser_id'] = ''; $result[$a]['user'][$usercounter]['inprogresssince'] = ''; $result[$a]['user'][$usercounter]['decissionstate'] = ''; $result[$a]['user'][$usercounter]['dateofdecission'] = ''; $result[$a]['user'][$usercounter]['isuseragentof'] = ''; $result[$a]['user'][$usercounter]['received'] = ''; $result[$a]['user'][$usercounter]['decission_id'] = ''; $result[$a]['user'][$usercounter]['endreasion'] = ''; $result[$a]['user'][$usercounter]['decissioninwords'] = ''; $usercounter++; } } $usercounter = 0; } # print_r ($result);die; return $result; }
/** * Activate a user, when he was deleted * @param sfWebRequest $request * @return <type> */ public function executeActivateUser(sfWebRequest $request) { UserLoginTable::instance()->activateUserById($request->getParameter('id')); return sfView::NONE; }
public function getCurrentStation($activeversion_id, $sender_id) { $result = array(); $activeVersion = WorkflowProcessTable::instance()->getCurrentStation($activeversion_id); $user = $activeVersion[0]->getWorkflowProcessUser()->toArray(); $workflowslot = $activeVersion[0]->getWorkflowSlot()->toArray(); if(!empty($workflowslot)) { $slot = DocumenttemplateSlotTable::instance()->getSlotById($workflowslot[0]['slot_id'])->toArray(); $currentStation = $slot[0]['name']; $userdata = UserLoginTable::instance()->findActiveUserById($user['user_id'])->toArray(); $username = $userdata[0]['username']; $currentStation .= ' <i>(' . $username . ')</i>'; $result[0] = $currentStation; $result[1] = $workflowslot[0]['updated_at']; return $result; } return $result; }
/** * Function allows LinkLogin by an email and redirects to the needed actions * the redirect depends on systemsettings. it allows direct linklogin without authentication using loginmask * other possibility is, if no session is set using emaillogin, loginmask is shown and user needs to login * to fill the workflow * * @param sfWebRequest $request * @return <type> */ public function executeLinklogin(sfWebRequest $request) { $settings = AuthenticationConfigurationTable::instance()->getAuthenticationConfiguration()->toArray(); $user_id = $request->getParameter('userid'); if($settings[0]['allowdirectlogin'] == 1) { // allow direct login, without using login form $userLogin = UserLoginTable::instance()->findUserById($user_id); $arr = $userLogin->toArray(); // load User Data if($this->getUser()->isAuthenticated() == false) { // check if user is already logged in if(empty($arr) == false) { // a user has been found, -> user is not deleted $settings = UserSettingTable::instance()->getUserSettingById($user_id); // user is not logged in, set the settings $this->getUser()->setAuthenticated(true); $this->getUser()->setAttribute('id',$user_id); $this->getUser()->setAttribute('userrole',$userLogin[0]->getRoleId()); $this->getUser()->setCulture($settings[0]->getLanguage()); $this->getUser()->setAttribute('env', str_replace('/', '', $request->getScriptName())); $this->redirect($this->generateUrl('default', array('module' => 'layout', 'action' => 'index', 'versionid' => $request->getParameter('versionid'), 'workflow' => $request->getParameter('workflowid'), 'window' => $request->getParameter('window')))); } else { // user is not found or is deleted $this->redirect('login/index'); } } else { // user is already logged in $this->redirect($this->generateUrl('default', array('module' => 'layout', 'action' => 'index', 'versionid' => $request->getParameter('versionid'), 'workflow' => $request->getParameter('workflowid'), 'window' => $request->getParameter('window')))); } } else { // allow direct login is denied if($this->getUser()->isAuthenticated() == true) { // user is already logged in $this->redirect($this->generateUrl('default', array('module' => 'layout', 'action' => 'index', 'versionid' => $request->getParameter('versionid'), 'workflow' => $request->getParameter('workflowid'), 'window' => $request->getParameter('window')))); } else { // move to login page $this->redirect($this->generateUrl('default', array('module' => 'login', 'action' => 'index', 'versionid' => $request->getParameter('versionid'), 'workflow' => $request->getParameter('workflowid'), 'window' => $request->getParameter('window')))); } } return sfView::NONE; }