/** * Adds a new user. * * @return void */ public function add() { $this->loadModel('User.Users'); $user = $this->Users->newEntity(); $user = $this->Users->attachFields($user); $languages = LocaleToolbox::languagesList(); $roles = $this->Users->Roles->find('list', ['conditions' => ['id NOT IN' => [ROLE_ID_AUTHENTICATED, ROLE_ID_ANONYMOUS]]]); if ($this->request->data()) { $user->accessible('id', false); $data = $this->request->data; if (isset($data['welcome_message'])) { $sendWelcomeMessage = (bool) $data['welcome_message']; unset($data['welcome_message']); } else { $sendWelcomeMessage = false; } $user = $this->Users->patchEntity($user, $data); if ($this->Users->save($user)) { if ($sendWelcomeMessage) { NotificationManager::welcome($user)->send(); } $this->Flash->success(__d('user', 'User successfully registered!')); $this->redirect(['plugin' => 'User', 'controller' => 'manage', 'action' => 'edit', $user->id]); } else { $this->Flash->danger(__d('user', 'User could not be registered, please check your information.')); } } $this->title(__d('user', 'Register New User')); $this->set(compact('user', 'roles', 'languages')); $this->Breadcrumb->push('/admin/user/manage'); }
/** * test __callStatic() for welcome(). * * @return void */ public function testCallStaticWelcome() { $user = new User(); $welcomeMessage = NotificationManager::welcome($user); $this->assertInstanceOf('User\\Notification\\Message\\WelcomeMessage', $welcomeMessage); }
/** * Users can request to re-send activation instructions to their email address. * * @return void */ public function activationEmail() { $this->loadModel('User.Users'); $sent = false; if (!empty($this->request->data['username'])) { $user = $this->Users->find()->where(['OR' => ['username' => $this->request->data['username'], 'email' => $this->request->data['username']], 'status' => 0])->limit(1)->first(); if ($user) { NotificationManager::welcome($user)->send(); $this->Flash->success(__d('user', 'Instructions have been sent to your e-mail address.'), ['key' => 'activation_email']); $sent = true; } else { $this->Flash->danger(__d('user', 'No account was found matching the given username/email.'), ['key' => 'activation_email']); } } $this->title(__d('user', 'Activation Request')); $this->set(compact('sent')); }