用户特定内容
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 中内容类型的特定字段?
Python - 目录中特定文件夹的用户输入,然后打印目录的所有内容