Пример #1
0
 /**
 *
 * 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'];
 }
Пример #4
0
   /**
    * 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;
 }
Пример #6
0
    /**
     * 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;
    }
Пример #7
0
 /**
  * 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;
 }
Пример #8
0
    /**
     * 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;
    }
Пример #10
0
 /**
  * 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;
    }
Пример #12
0
    /**
     * 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;
    }