2014-06-06 5 views
0

У меня есть форма для входа в систему, и после входа в систему я показываю некоторые ссылки: Я хочу, чтобы пользователи, не являющиеся администраторами, могли нажимать или пересылать их на определенную страницу. Я не хочу использовать symfony2 ROLES, потому что это слишком сложно. Есть ли что-то проще?запрещает некоторым пользователям просматривать некоторые страницы

ответ

1

В зависимости от того, как вы делаете разницу между пользователями admin и non-admin в вашем объекте User. Если это только логический флаг (скажем admin атрибут):

User.php

private $admin; 
// your attributes 

public function isAdmin() 
{ 
    return $this->admin; 
} 

public function setAdmin($boolean) 
{ 
    $this->admin = $boolean; 
} 
// getters/setters 

FooController.php

public function showAdminPanelAction() 
{ 
    if(!$this->getUser()->isAdmin()) { 
     throw new AccessDeniedHttpException('Forbidden Access'); 
    } 
    else 
    { 
     // do your stuff 
    } 
} 

НО Symfony2 роли делает вещи проще если у вас более двух двух разных ролей, иерархии, множества пользователей и т. д.

+0

Я уже думал об одной и той же альтернативе, но, похоже, вам лучше :) thx –

+0

У меня получилось: Неустранимая ошибка: вызов функции-члена isAdmin() на не-объект в !!!! –

+0

Попробуйте var_dump() на $ this-> getUser()? Как вы управляете пользователями? – Rybus

Смежные вопросы