Páginas

11 de fevereiro de 2010

sfGuard credenciais para acesso a módulos

As fixtures abaixo vão gerar:
  • 2 grupos de utilizadores (admin e author)
  • 2 tipos de permissoes (admin e author)
  • 2 utilizadores (admin e author)
sfGuardUser:
  sgu_admin:
    username:       admin
    password:       admin
    is_super_admin: true
  sgu_author:
    username:       author
    password:       author
    is_super_admin: false

sfGuardPermission:
  sgp_admin:
    name:           admin
    description:    Administrator permission
  sgp_author:
    name:           author
    description:    Author permission

sfGuardGroup:
  sgg_admin:
    name:           admin
    description:    Administrator group
  sgg_author:
    name:           author
    description:    Author group

sfGuardGroupPermission:
  sggp_admin:
    sfGuardGroup:       sgg_admin
    sfGuardPermission:  sgp_admin
  sggp_author:
    sfGuardGroup:       sgg_author
    sfGuardPermission:  sgp_author

sfGuardUserGroup:
  sgug_admin:
    sfGuardGroup:       sgg_admin
    sfGuardUser:        sgu_admin
  sgug_author:
    sfGuardGroup:       sgg_author
    sfGuardUser:        sgu_author

Para no backend fazer com que um utilizador do grupo "author" apenas tenha acesso (de leitura e escrita) no módulo "article" deve-se editar o ficheiro
apps/backend/modules/article/config/security.yml:
default:
  is_secure: on
  credentials: [author]

Para todos os restantes módulos temos que restringir o acesso a utilizadores do grupo "admin":
Para garantirmos que os restantes módulos estejam apenas acessíveis para utilizadores do grupo "admin",  temos que editar o ficheiro
apps/backend/config/security.yml:
default:
  is_secure: on
  credentials: [admin]


Se numa vista com acesso geral quisermos filtrar o conteúdo dependendo da credencial, podemos verifica-la assim:
$sf_user->hasCredential('author')

Mais informações sobre sfGuard estão disponíveis aqui e aqui.
Mais informações sobre credentials aqui.

Nenhum comentário:

Postar um comentário