public function indexAction() { $user = App::user(); $userprofile = App::module('bixie/userprofile'); if (!$user->isAuthenticated()) { return App::redirect('@user/login', ['redirect' => App::url()->current()]); } return ['$view' => ['title' => __('Your Profile'), 'name' => 'bixie/userprofile/profile.php'], '$data' => ['config' => $userprofile->config('default'), 'fields' => Field::getProfileFields(), 'profilevalues' => Profilevalue::getUserProfilevalues($user), 'user' => ['id' => $user->id, 'username' => $user->username, 'name' => $user->name, 'email' => $user->email]]]; }
/** * @Route("/", methods="GET") * @Route("/{id}", methods="GET", requirements={"id"="\d+"}) */ public function indexAction($id = 0) { $self = App::user(); $userprofile = App::module('bixie/userprofile'); $id = $id ?: $self->id; if (!$self->hasAccess('user: manage users') && $id != $self->id) { App::abort(403, 'Insufficient permissions.'); } if (!($user = User::find($id))) { App::abort(404, 'User not found.'); } return ['config' => $userprofile->config(), 'fields' => Field::getProfileFields(), 'profilevalues' => Profilevalue::getUserProfilevalues($user), 'user' => ['id' => $user->id, 'username' => $user->username, 'name' => $user->name, 'email' => $user->email]]; }
/** * @param User|null $user * @param bool $asArray * @param bool $checkAccess * @return array|bool */ public function getProfile(User $user = null, $asArray = true, $checkAccess = true) { $profile = []; if (!$this->framework) { return $profile; } if ($user = $user ?: App::user() and $user->id > 0) { $profileValues = Profilevalue::getUserProfilevalues($user); } foreach (Field::getProfileFields($checkAccess) as $field) { $fieldValue = isset($profileValues[$field->id]) ? $profileValues[$field->id] : Profilevalue::create(['field_id' => $field->id, 'user_id' => $user->id, 'multiple' => $field->get('multiple') == 1 ? 1 : 0, 'data' => $field->get('data')])->setField($field)->setValue($field->get('value')); if ($asArray) { $profile[$field->slug] = $fieldValue->setField($field)->toFormattedArray(['id' => $fieldValue->id]); } else { $profile[$field->slug] = $fieldValue->setField($field); } } return $profile; }