Example #1
0
 /**
  * Logins action method
  *
  * @return void
  */
 public function logins()
 {
     $session = new Model\Session();
     if ($this->request->isPost()) {
         $post = $this->request->getPost();
         if (isset($post['clear_all_logins']) && (int) $post['clear_all_logins'] == 1) {
             $session->clearLogins();
             $this->sess->setRequestValue('removed', true);
         } else {
             if (isset($post['clear_logins_by']) && $post['clear_logins_by'] != '----') {
                 $session->clearLogins($post['clear_logins_by']);
                 $this->sess->setRequestValue('removed', true);
             } else {
                 if (isset($post['rm_logins'])) {
                     $session->removeLogins($post['rm_logins']);
                     $this->sess->setRequestValue('removed', true);
                 }
             }
         }
         $this->redirect('/sessions/logins');
     } else {
         $searchUsername = $this->request->getQuery('search_username');
         if ($session->hasLoginPages($this->application->config()['pagination'], $searchUsername)) {
             $limit = $this->application->config()['pagination'];
             $pages = new Paginator($session->getLoginCount($searchUsername), $limit);
             $pages->useInput(true);
         } else {
             $limit = null;
             $pages = null;
         }
         $this->prepareView('sessions/logins.phtml');
         $this->view->title = 'Sessions : Logins';
         $this->view->pages = $pages;
         $this->view->queryString = $this->getQueryString('sort');
         $this->view->searchUsername = $searchUsername;
         $this->view->users = $session->getAllUsers();
         $this->view->logins = $session->getLogins($searchUsername, $limit, $this->request->getQuery('page'), $this->request->getQuery('sort'));
         $this->send();
     }
 }
Example #2
0
 /**
  * Update an existing user
  *
  * @param  array               $fields
  * @param  \Pop\Session\Session $sess
  * @return void
  */
 public function update(array $fields, $title, \Pop\Session\Session $sess = null)
 {
     $user = Table\Users::findById((int) $fields['id']);
     if (isset($user->id)) {
         $oldRoleId = $user->role_id;
         $oldActive = $user->active;
         $user->role_id = isset($fields['role_id']) ? $fields['role_id'] : $user->role_id;
         $user->username = $fields['username'];
         $user->password = !empty($fields['password1']) ? (new Bcrypt())->create($fields['password1']) : $user->password;
         $user->email = isset($fields['email']) ? $fields['email'] : $user->email;
         $user->active = isset($fields['active']) ? (int) $fields['active'] : $user->active;
         $user->verified = isset($fields['verified']) ? (int) $fields['verified'] : $user->verified;
         $user->total_logins = isset($fields['clear_logins']) ? 0 : $user->total_logins;
         $user->failed_attempts = isset($fields['failed_attempts']) ? (int) $fields['failed_attempts'] : $user->failed_attempts;
         $user->save();
         if (isset($fields['clear_logins'])) {
             $session = new Session();
             $session->clearLogins($user->id);
         }
         if (null !== $sess && $sess->user->id == $user->id) {
             $sess->user->username = $user->username;
             $sess->user->email = $user->email;
         }
         $this->data = array_merge($this->data, $user->getColumns());
         if ((null === $oldRoleId && null !== $user->role_id || !$oldActive && $user->active) && !empty($user->email)) {
             $notify = new Notification();
             $notify->sendApproval($user, $title);
         }
     }
 }