2016-06-29 38 views
0

我是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有该

  1. 在Backand面板简单的解决方案去对象>>待办事项>>安全
  2. 根据预先定义的过滤器,你会看到一个向导来创建一个nosql或sql过滤器。它的初始状态已准备好生成您描述的确切过滤器,只需查看它是否为真或进行更改,然后单击“获取代码”
  3. 单击验证&更新,如果没有错误,则批准该消息并你的设置去

它应该是这个样子

{ 
    "$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}}')) 
+0

谢谢,没有意识到这个选择。尽管当我添加这个时,如果您以管理员身份登录而不是普通用户,则只能发布项目。像这样添加它:'('{{sys :: role}}'='Admin')OR(items.created_by IN((SELECT users id FROM users WHERE(users.email ='{{sys :: username}} '))))' – qua1ity

+0

您是否检查过安全模板,用户是否创建了特权? – user3375230

+0

是的,根据安全模板,如果您要在POST数据中发送created_by,那么用户角色应该与管理员角色 – qua1ity

相关问题