1

我正在创建自己的博客引擎来学习 Symfony,我有一个问题:

感谢sfGuardUser模块,我可以添加和编辑用户,但我怎样才能允许用户只编辑他们的记录?

用户应该有权访问允许他们编辑电子邮件、姓名、密码和个人资料的页面。

有任何想法吗 ?

4

2 回答 2

0

我找到了以下代码,今晚将尝试。

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/

于 2011-01-26T15:50:47.347 回答
0

在更新配置文件的操作中,您通过该getId()方法检索用户对象并将更改应用于返回的对象。

$user = sfGuardUserPeer::retrieveByPK(
  $this->getUser()->getGuardUser()->getId()
);
于 2011-01-25T12:22:42.627 回答