如何为同一实例上的不同用户授予不同的权限

时间:2013-08-17 10:04:38

标签: grails permissions acl

在我的grails应用程序中,我安装了spring security acl并且工作正常。我有一个域类客户和三个角色,即管理员,销售人员,其他人。 如何为同一域实例上的不同用户授予权限,即对ROLE_ADMIN(创建,读取,删除和写入),ROLE_SALES(创建,读取)和ROLE_OTHERS(创建,读取,写入)。

示例:x是admin角色创建的客户实例,具有写入,删除,读取权限。 对于相同的x实例,如何授予权限读取,写销售角色以及创建,读取,写入其他角色的权限

1 个答案:

答案 0 :(得分:2)

您可以在班级或方法级别放置@Secured授权注释。这样,您可以将控制器方法锁定到某些角色。例如,如果您要控制访问权限的Thing域类,则可以通过以下方式注释其控制器:

class ThingController {
    @Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
    create() {
      // creation logic
    }

    @Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
    read() {
      // read logic
    }

    @Secured('ROLE_ADMIN')
    delete() {
      // delete logic
    }

    @Secured(['ROLE_ADMIN', 'ROLE_OTHERS'])
    write() {
      // write logic
    }
}

Here是Grails Spring Security文章的一个很好的介绍(请参阅“添加访问控制”和“注释”)。 And here是有关此主题的官方Grails Spring Security文档。