gpt4 book ai didi

grails - Grails中基于角色的域类字段访问

转载 作者:行者123 更新时间:2023-12-02 04:17:20 25 4
gpt4 key购买 nike

我正在开发grails应用程序。在某些情况下,我想根据角色控制域类字段。因此,在每次调用域类的getter setter方法时,我都希望基于角色应用一些过滤器(登录用户角色我假设grails将在运行时为domin类创建getter setter方法,因此在编写grails代码时可以应用此逻辑,如果可能的话如何应用?

例:

域类:

class Book{
String name;
double price;

}

Controller :
def index={
Book book=Book.get(1);
println book.name;
println book.price;
}

在上面的代码“println book.price;”中该行仅适用于特定角色,对于其他角色,则应引发一些异常。

有可能实现吗,有没有插件可以做到这一点?

请对此提供一些帮助。...谢谢

最佳答案

您可以为要控制访问的属性创建get / set方法,并在其中放置安全逻辑。假设您已经编写了自己的安全服务,或者正在使用诸如Spring Security(Acegi)插件之类的安全插件,您将:

class Book{
String name;
double price;

def authenticateService

void setPrice(double price) {
if(!authenticateService.ifAllGranted('ROLE_PRICE_FIXER')) {
throw new Exception("You are not authorized to set book prices")
}
this.price = price
}

double getPrice() {
if(!authenticateService.ifAllGranted('ROLE_PRICE_FIXER')) {
throw new Exception("You are not authorized to get book prices")
}
return this.price
}
}

我不知道任何允许将访问控制置于域属性上的插件。

关于grails - Grails中基于角色的域类字段访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com