我要为我的项目创建一个安全过滤器。我检查if !session.user then redirect to action error
。
这是我目前的代码:
all(controller: 'accounting|installation|installer|sales|service|serviceOrder|document', action: '*') {
before = {
if (!session.user) {
redirect(controller: 'installation', action: 'errors')
return false
}
}
after = { Map model ->
}
afterView = { Exception e ->
}
}
但重点是在session.user
和controller 'installation'
中创建了action 'index'
。那么如何在没有index action
的情况下进行过滤?
任何建议将不胜感激。感谢。
答案 0 :(得分:3)
您可以使用invert:true
e.g
def filters = {
allExceptIndex(controller:"installation",action:"index",invert:true) {
before = {
}
after = { Map model ->
}
afterView = { Exception e ->
}
}
}
有关详细信息,请参阅Blog
答案 1 :(得分:1)
试试这个
all(controller: 'accounting|installation|installer|sales|service|serviceOrder|document', action: '*') {
before = {
if (!(controllerName == 'installation' && actionName == 'index')) {
if (!session.user) {
redirect(controller: 'installation', action: 'errors')
return false
}
}
}
after = { Map model ->
}
afterView = { Exception e ->
}
}
答案 2 :(得分:0)
希望我已经理解了你的问题,因为你想排除动作索引,试试这个..
all(controller: 'accounting|installation|installer|sales|service|serviceOrder|document', action: '*',actionExclude:'index'){....
此致