/** * Edit details * @requestLogin */ public function editDetails() { $this->_rejectNotLogged(); $details = AboutUsers::first(array('conditions' => array('user_id' => $this->_user['id']))); if ($this->request->data) { if ($details->save($this->request->data)) { return $this->redirect('li3_usermanager.Users::index'); } } return compact('details'); }
/** * Apply proper password hashing (on create or change password) * On create: * - apply defined default user group (LI3_UM_DefaultUserGroup) * - apply defined active status (LI3_UM_RequireUserActivation) * 0 - require user to activate account trough generated link with token * 1 - don't require further actions, account is already activated */ public static function __init() { static::applyFilter('save', function ($self, $params, $chain) { if ($params['data']) { $params['entity']->set($params['data']); $params['data'] = array(); } if (!$params['entity']->exists()) { if ($params['entity']->password) { $params['entity']->password = Password::hash($params['entity']->password); } $params['entity']->active = 1; if (LI3_UM_RequireUserActivation && $self::$request) { $params['entity']->active = 0; } $params['entity']->user_group_id = LI3_UM_DefaultUserGroup; } else { if ($params['entity']->password && $params['entity']->modified('password')) { $params['entity']->password = Password::hash($params['entity']->password); } } return $chain->next($self, $params, $chain); }); static::applyFilter('save', function ($self, $params, $chain) { if (($save = $chain->next($self, $params, $chain)) && $params['options']['events'] === 'create') { $user = $params['entity']; AboutUsers::create(array('user_id' => $user->id))->save(); if (LI3_UM_RequireUserActivation && $self::$request) { $token = Token::generate($user->email); UserActivations::create(array('user_id' => $user->id, 'token' => $token))->save(); $link = Router::match(array('li3_usermanager.Users::activate', 'id' => $user->id, 'token' => $token), $self::$request, array('absolute' => true)); Mailer::$_data['subject'] = 'Your activation link!'; Mailer::$_data['from'] = LI3_UM_ActivationEmailFrom; Mailer::$_data['to'] = $user->email; Mailer::$_data['body'] = 'This is your activation link:' . "\n" . $link; } } return $save; }); }