用户特定内容

Posted

技术标签:

【中文标题】用户特定内容【英文标题】:User specific content 【发布时间】:2016-06-29 07:37:29 【问题描述】:

我是 Backand 和整个后端领域的新手,我需要一些启发。基本上我正在尝试制作一个用户可以注册和登录的应用程序。当用户登录时,他可以创建简单的东西,例如待办事项列表。待办事项列表随后保存在数据库中,并且只能由创建它的用户在页面上查看。

到目前为止,有一个用于注册、登录和创建/发布项目的功能。当前的用户身份验证基本上和示例中的一样:

var signin = function (username, password) 
    return Backand.signin(username, password)
        .then(function (response) 
            return response;
        );
;   

var signUp = function (user) 
    return $http(
        method: 'POST',
        url: 'https://api.backand.com/1/user/signup',
        headers: 
            'SignUpToken': "#####"
        ,
        data: user
    );
;

虽然发布项目的功能就是这样,然后在网页上获取它的GET请求。

var addList = function (title, comment) 
    return $http(
        method: 'POST',
        url: "https://api.backand.com/1/objects/lists",
        headers: 
            'Content-Type': 'application/json'
        ,
        data: 
            title: title,
            comment: comment
        
    );
;

现在我需要创建的项目只能由创建它的用户查看(登录时)。所以问题是,我该怎么做?你下一步怎么做?是否有任何教程/文档可以实现这一目标?我有点卡住所以任何帮助表示赞赏! :)

【问题讨论】:

【参考方案1】:

Backand 有一个简单的解决方案

    在 Backand 面板上转到对象 >> 待办事项 >> 安全 在预定义过滤器下,您将看到一个创建 nosql 或 sql 过滤器的向导。它的初始状态已准备好生成您描述的确切过滤器,只需检查它是否正确或进行更改,然后单击“获取代码” 点击 Validate & Update,如果没有错误,请批准该消息,然后您就可以使用了

它应该看起来像这样


  "$or": [
    
      "'sys::role'": "'Admin'"
    ,
    
      "user": 
        "$in": 
          "object": "users",
          "q": 
            "email": 
              "$eq": "'sys::username'"
            
          ,
          "fields": [
            "id"
          ]
        
      
    
  ]

或者一个sql版本:

( 'Admin' = 'sys::role') or (`items`.`user` in (select `users`.`id` from `users` where `users`.`email` = 'sys::username'))

【讨论】:

谢谢,不知道这个选项。虽然当我添加这个时,如果您以管理员身份而不是普通用户身份登录,您只能发布项目。像这样添加它:( 'sys::role' = 'Admin' ) OR ( items.created_by IN ( ( SELECT users id FROM users WHERE (users.email = 'sys::username') ) ) ) 你检查了安全模板,用户有创建权限吗? 是的,根据安全模板,用户角色应该和管理员具有相同的权限 如果您在 POST 数据中发送 created_by,那么它应该与当前用户 ID 匹配。但是您可以在“创建前”中添加一个操作并设置 created_by 就像 userInput.created_by = userProfile.userId

以上是关于用户特定内容的主要内容,如果未能解决你的问题,请参考以下文章

如何仅允许特定用户查看 Drupal 中内容类型的特定字段?

Django Admin - 特定用户(管理员)内容

Python - 目录中特定文件夹的用户输入,然后打印目录的所有内容

当数据库中的某些内容被修改时,仅通过 WebSockets 通知特定用户

在 GWT 中实现用户特定的自定义内容入口点的策略

如何只允许特定用户访问 Amazon S3 上的内容