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

Grails 如何为同一实例上的不同用户授予不同的权限,grails,permissions,acl,Grails,Permissions,Acl,在我的grails应用程序中,我安装了springsecurityacl,它工作正常。我有一个域类客户和三个角色,即管理员、销售人员和其他人员。 如何为同一域实例上的不同用户授予权限,例如,为ROLE_ADMIN(创建、读取、删除和写入)、ROLE_SALES(创建、读取)和ROLE_OTHERS(创建、读取、写入)授予权限 示例:x是由管理员角色创建的客户实例,该客户具有写入、删除和读取权限。 对于同一个x实例,如何为销售角色授予读、写权限,以及为其他角色授予创建、读、写权限您可以在类级别或方

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

示例:x是由管理员角色创建的客户实例,该客户具有写入、删除和读取权限。
对于同一个x实例,如何为销售角色授予读、写权限,以及为其他角色授予创建、读、写权限

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

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
    }
}

是GrailsSpring安全性文章的一个很好的介绍(请参阅“添加访问控制”和“注释”)。是关于此主题的官方Grails Spring安全文档。

您可以在控制器操作中使用控制器中的anotations来进行访问控制