public function getThreadById($id) { $record = craft()->forum_thread->getThreadById($id); $record->replies = array_map(function ($reply) { $reply->user = UserRecord::model()->findById($reply->userId); return $reply; }, $record->replies); return $record; }
/** * Handle the onBeforeSaveUser event. * * @param Event $event */ public function onBeforeSaveUser(Event $event) { // Get user id to save $id = $event->params['user']->id; if (!$event->params['isNewUser']) { // Get old user from db $user = UserModel::populateModel(UserRecord::model()->findById($id)); // Get fields $this->before = $this->fields($user); } else { // Get fields $this->before = $this->fields($event->params['user'], true); } }
/** * Gets a user record by its ID. * * @param int $userId * * @throws Exception * @return UserRecord */ private function _getUserRecordById($userId) { $userRecord = UserRecord::model()->findById($userId); if (!$userRecord) { throw new Exception(Craft::t('No user exists with the ID “{id}”.', array('id' => $userId))); } return $userRecord; }
/** * Delete all the photos for current user. */ public function actionDeleteUserPhoto() { $this->requireAjaxRequest(); craft()->userSession->requireLogin(); $userId = craft()->request->getRequiredPost('userId'); if ($userId != craft()->userSession->getUser()->id) { craft()->userSession->requirePermission('editUsers'); } $user = craft()->users->getUserById($userId); craft()->users->deleteUserPhoto($user); $record = UserRecord::model()->findById($user->id); $record->photo = null; $record->save(); // Since Model still believes it has an image, we make sure that it does not so anymore when it reaches the template. $user->photo = null; $html = craft()->templates->render('users/_edit/_userphoto', array('account' => $user)); $this->returnJson(array('html' => $html)); }
/** * Initialize the category saving/deleting events. */ public function log() { // Get values before saving craft()->on('users.onBeforeSaveUser', function (Event $event) { // Get user id to save $id = $event->params['user']->id; if (!$event->params['isNewUser']) { // Get old user from db $user = UserModel::populateModel(UserRecord::model()->findById($id)); // Get fields craft()->auditLog_user->before = craft()->auditLog_user->fields($user); } else { // Get fields craft()->auditLog_user->before = craft()->auditLog_user->fields($event->params['user'], true); } }); // Get values after saving craft()->on('users.onSaveUser', function (Event $event) { // Get saved user $user = $event->params['user']; // Get fields craft()->auditLog_user->after = craft()->auditLog_user->fields($user); // New row $log = new AuditLogRecord(); // Set user id $log->userId = craft()->userSession->getUser() ? craft()->userSession->getUser()->id : $user->id; // Set element type $log->type = ElementType::User; // Set origin $log->origin = craft()->request->isCpRequest() ? craft()->config->get('cpTrigger') . '/' . craft()->request->path : craft()->request->path; // Set before $log->before = craft()->auditLog_user->before; // Set after $log->after = craft()->auditLog_user->after; // Set status $log->status = $event->params['isNewUser'] ? AuditLogModel::CREATED : AuditLogModel::MODIFIED; // Save row $log->save(false); // Callback craft()->auditLog->elementHasChanged(ElementType::User, $user->id, craft()->auditLog_user->before, craft()->auditLog_user->after); }); // Get values before deleting craft()->on('users.onBeforeDeleteUser', function (Event $event) { // Get deleted user $user = $event->params['user']; // Get fields craft()->auditLog_user->before = craft()->auditLog_user->fields($user); craft()->auditLog_user->after = craft()->auditLog_user->fields($user, true); // New row $log = new AuditLogRecord(); // Set user id $log->userId = craft()->userSession->getUser()->id; // Set element type $log->type = ElementType::User; // Set origin $log->origin = craft()->request->isCpRequest() ? craft()->config->get('cpTrigger') . '/' . craft()->request->path : craft()->request->path; // Set before $log->before = craft()->auditLog_user->before; // Set after $log->after = craft()->auditLog_user->after; // Set status $log->status = AuditLogModel::DELETED; // Save row $log->save(false); // Callback craft()->auditLog->elementHasChanged(ElementType::User, $user->id, craft()->auditLog_user->before, craft()->auditLog_user->after); }); }