如何在我的fosuserbundle中添加新角色?

时间:2016-03-30 23:03:10

标签: php symfony web doctrine fosuserbundle

我可以添加新用户角色 像这样

    role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN
    ROLE_SUPER_ADMIN: ROLE_RMI
    ROLE_SUPER_ADMIN: ROLE_RM
    ROLE_SUPER_ADMIN: ROLE_RMIS
    ROLE_SUPER_ADMIN: ROLE_RP

并添加对同一路径的访问权限

- { path: ^/admin, role: ROLE_ADMIN ROLE_RM ROLE_RP ROLE_RMIS ROLE_RMI }

然后在我的控制器中,我指定了使用此函数应该具有什么角色

例如,ROLE_RP可以更改用户名,ROLE_ADMIN可以添加新用户......

任何人都可以帮我做这个

1 个答案:

答案 0 :(得分:0)

我相信你可以这样做:

ROLE_RMI : ROLE_USER
ROLE_ADMIN : ROLE_USER
ROLE_RM : ROLE_USER
ROLE_RMIS : ROLE_USER
ROLE_RP : ROLE_USER
ROLE_MYROLES: [ROLE_ADMIN, ROLE_RMI, ROLE_RM, ROLE_RMIS, ROLE_RP]

with:

- { path: ^/admin, role: ROLE_MYROLES}

在控制器之后:

  if($user->hasRole('ROLE_RP')){ 
    // change users name 
  } else if($user->hasRole('ROLE_ADMIN')){
    //do others things
  }

请注意,您需要在UserInterface中定义:

public function getRoles() {
    return array('ROLE_THAT_U_NEED'); 
}