/**
  * @Access("userprofile: view profiles")
  * @Route("/{id}", methods="GET", name="id")
  * @Request({"id": "int"})
  */
 public function detailsAction($id)
 {
     if (!($user = App::auth()->getUserProvider()->find((int) $id)) or !($profileUser = ProfileUser::load($user))) {
         App::abort(404, __('User not found.'));
     }
     if ($breadcrumbs = App::module('bixie/breadcrumbs')) {
         $breadcrumbs->addUrl(['title' => $user->name, 'url' => '']);
     }
     return ['$view' => ['title' => __('User Profile'), 'name' => 'bixie/userprofile/profile-details.php'], '$data' => [], 'config' => App::module('bixie/userprofile')->config(), 'profileUser' => $profileUser, 'node' => App::node()];
 }
 /**
  * main profile edit page
  * @Route("/", methods="GET")
  */
 public function indexAction()
 {
     $user = App::user();
     $userprofile = App::module('bixie/userprofile');
     if (!$user->isAuthenticated()) {
         return App::redirect('@user/login', ['redirect' => App::url()->current()]);
     }
     $profileUser = ProfileUser::load($user);
     return ['$view' => ['title' => __('Your Profile'), 'name' => 'bixie/userprofile/profile-edit.php'], '$data' => ['config' => $userprofile->config(), 'user' => ['id' => $user->id, 'username' => $user->username, 'name' => $user->name, 'email' => $user->email]], 'profileUser' => $profileUser];
 }
Exemplo n.º 3
0
 /**
  * @param      $event
  * @param User $user
  */
 public function onUserChange($event, User $user)
 {
     $profilevalues = App::request()->request->get('profilevalues', []);
     if (count($profilevalues)) {
         $profileUser = ProfileUser::load($user);
         $profileUser->setProfileValues($profilevalues);
         $profileUser->saveProfile();
         //only save once
         App::request()->request->set('profilevalues', []);
     }
 }
 /**
  * @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.');
     }
     $profileUser = ProfileUser::load($user);
     return ['config' => $userprofile->config(), 'fields' => array_values(Field::getProfileFields()), 'profilevalues' => $userprofile->getProfile($user), 'profile_user' => $profileUser, 'user' => ['id' => $user->id, 'username' => $user->username, 'name' => $user->name, 'email' => $user->email]];
 }
Exemplo n.º 5
0
    $scripts->register('user-section-userprofile', 'bixie/userprofile:app/bundle/user-section-userprofile.js', ['~user-edit', 'bixie-fieldtypes'], ['version' => $version]);
}, 'view.data' => function ($event, $data) use($app) {
    $route = $app->request()->attributes->get('_route');
    if (strpos($route, '@userprofile') === 0 || $route == '@user/edit') {
        $data->add('$fieldtypes', ['ajax_url' => 'api/userprofile/profile/ajax']);
    }
    //load profile
    if (in_array($route, ['@userprofile', '@userprofile/registration', '@user/edit'])) {
        $self = $app->user();
        $edit_id = $app->request()->get('id');
        if ($route == '@user/edit') {
            //blank user when admin creates new user
            $user = $edit_id ? \Pagekit\User\Model\User::find($edit_id) : \Pagekit\User\Model\User::create();
        } else {
            $user = $self;
        }
        if ($self->hasAccess('user: manage users') || $user->id == $self->id) {
            $profileUser = ProfileUser::load($user);
            $data->add('$userprofile', ['fields' => array_values(\Bixie\Userprofile\Model\Field::getProfileFields()), 'profilevalues' => $app->module('bixie/userprofile')->getProfile($user), 'profile_user' => $profileUser]);
        }
    }
}, 'view.styles' => function ($event, $styles) use($app) {
    $route = $app->request()->attributes->get('_route');
    if (strpos($route, '@userprofile') === 0 || in_array($route, ['@user/edit'])) {
        foreach ($app->module('bixie/userprofile')->getFieldTypes() as $type) {
            $type->addStyles($styles);
        }
    }
}, 'console.init' => function ($event, $console) {
    $console->add(new Bixie\Userprofile\Console\Commands\TranslateCommand());
}]];