gpt4 book ai didi

spring - chalice 3;使用 Spring Security 查看自己的数据

转载 作者:行者123 更新时间:2023-12-02 15:46:55 25 4
gpt4 key购买 nike

chalice :3.3.0
Spring 安全:3.2.0.M1

我对此进行了一些研究,发现(Seeing only your own data in Grails)帖子的答案可能是我正在寻找的答案,但不知何故它不起作用。

这就是我捕获登录用户并尝试过滤掉并让登录用户查看他自己的数据的方式。
(这是我的任务 Controller )
对了有什么用[任务:任务]

def index(Integer max) {

def authenticated = getAuthenticatedUser().username
def tasks = User.findAllByUsername(authenticated)
[tasks: tasks]
params.max = Math.min(max ?: 10, 100)
respond Task.list(params), model:[tasks: Task.count()]
}


这是我的任务域

class Task {

transient springSecurityService

String task
Project project
Pic picName

static hasMany = [subTask:Subtask]
static belongsTo =[Project,Pic,User]
}


请给我一些建议或让我知道我在哪里犯了错误!
提前致谢!
最好的问候, 嘻

最佳答案

我认为您的要求与 Spring Security 无关。

关于“顺便说一下 [tasks:tasks] 的用途是什么”——看起来你在代码中有两个返回点,所以你需要修复它——在 groovy 中,如果你在最后一行 - 所以我假设这一行是包含任务列表的模型的返回 - 但代码在它之后继续......

  • 如果任何任务属于用户,那么您应该使用:
    User user = getAuthenticatedUser() // method for getting the curren user
    params.max = Math.min(max ?: 10, 100) // any query params you want to add
    def tasks = Task.findAllByUser(user, params) //get the user Tasks using the query params

  • 然后返回数据+任何其他数据,如计数等。
  • 您可以考虑不使用多个 belongsTo 它会使您的模型过于复杂而无需:
    static belongsTo =[Project,Pic,User]

    在任务属于用户的情况下,您可以保留每个任务的用户 ID 或用户名,然后通过此属性进行查询 - 例如:
    class Task {

    transient springSecurityService

    String username // not unique
    String task
    Project project
    Pic picName

    static hasMany = [subTask:Subtask]
    static belongsTo =[Project,Pic]
    }

    def username = getAuthenticatedUser().username // method for getting the current username.
    params.max = Math.min(max ?: 10, 100) // any query params you want to add.
    def tasks = Task.findAllByUsername(username, params) get the user Tasks using the query params.
  • 顺便说一句,将服务保留在域模型中并不是一个好习惯 - 通过将服务注入(inject)您的 Controller /服务中来使用该服务
    transient springSecurityService
  • 关于spring - chalice 3;使用 Spring Security 查看自己的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048546/

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