/**
  * test __callStatic() for blocked().
  *
  * @return void
  */
 public function testCallStaticBlocked()
 {
     $user = new User();
     $blockedMessage = NotificationManager::blocked($user);
     $this->assertInstanceOf('User\\Notification\\Message\\BlockedMessage', $blockedMessage);
 }
 /**
  * Blocks the given user account.
  *
  * After account is blocked token is regenerated, so user cannot login using
  * a known token.
  *
  * @param int $id User's ID
  * @return void Redirects to previous page
  */
 public function block($id)
 {
     $this->loadModel('User.Users');
     $user = $this->Users->get($id, ['fields' => ['id', 'name', 'email'], 'contain' => ['Roles']]);
     if (!in_array(ROLE_ID_ADMINISTRATOR, $user->role_ids)) {
         if ($this->Users->updateAll(['status' => 0], ['id' => $user->id])) {
             $this->Flash->success(__d('user', 'User {0} was successfully blocked!', $user->name));
             $user->updateToken();
             NotificationManager::blocked($user)->send();
         } else {
             $this->Flash->danger(__d('user', 'User could not be blocked, please try again.'));
         }
     } else {
         $this->Flash->warning(__d('user', 'Administrator users cannot be blocked.'));
     }
     $this->title(__d('user', 'Block User Account'));
     $this->redirect($this->referer());
 }