разрешить пользователям изменять свой пароль, адрес электронной почты и профиль - PullRequest
1 голос
/ 25 января 2011

Я создаю собственный блог-движок для изучения Symfony, и у меня есть вопрос:

Я могу добавлять и редактировать пользователей благодаря модулю sfGuardUser , но как разрешить пользователям редактировать только свои записи?

Пользователи должны иметь доступ к странице, позволяющей им редактировать свою электронную почту, имя, пароль и профиль.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 26 января 2011

Я нашел следующий код, попробую сегодня вечером.

class sfGuardUserActions extends autoSfGuardUserActions {


    public function executeEdit(sfWebRequest $request) {
        $this->checkPerm($request);
        parent::executeEdit($request);
    }

    public function checkPerm(sfWebRequest $request) {
        $id = $request->getParameter('id');

        $user = sfContext::getInstance()->getUser();
        $user_id = $user->getGuardUser()->getId();

        if ($id != $user_id && !($user->hasCredential('admin'))) {
            $this->redirect('sfGuardAuth/secure');
        }
    } }

из http://oldforum.symfony -project.org / index.php / m / 96776 /

0 голосов
/ 25 января 2011

В действии, где обновляется профиль, вы извлекаете объект пользователей с помощью метода getId() и применяете изменения к возвращаемому объекту.

$user = sfGuardUserPeer::retrieveByPK(
  $this->getUser()->getGuardUser()->getId()
);
...