我正在创建自己的博客引擎来学习Symfony,我有一个问题:
由于 sfGuardUser 模块,我可以添加和编辑用户,但是如何才允许用户只编辑他们的记录?
用户应该有权访问允许他们编辑电子邮件,姓名,密码和个人资料的页面。
有什么想法吗?
答案 0 :(得分:0)
在更新配置文件的操作中,您可以通过getId()
方法检索用户对象,并对返回的对象应用更改。
$user = sfGuardUserPeer::retrieveByPK(
$this->getUser()->getGuardUser()->getId()
);
答案 1 :(得分: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');
}
} }