如何删除客户端的Meteor用户?

时间:2015-08-09 23:11:12

标签: angularjs meteor meteor-accounts

我正在使用meteor ui twitter账号。我试图做的是基本上在点击按钮清除时从Meteor集合中删除所有用户。这是我的代码:

HTML文件:

<div ng-controller="TweetsCtrl">
<meteor-include src="loginButtons"></meteor-include>
<ul>
    <br>
    <div ng-repeat="t in twitterAccs">
        <img src = "{{t.services.twitter.profile_image_url_https}}">
        <br>
        <i>@{{t.services.twitter.screenName}}</i>
        <br>
        <br>
    </div>
    <button ng-click="clearUsers()">Clear</button>
</ul>

JS文件:

    if (Meteor.isClient) {
      angular.module('twitter-example',['angular-meteor']);
      angular.module('twitter-example').controller('TweetsCtrl',['$scope','$meteor',function($scope,$meteor) {
      $scope.twitterAccs = $meteor.collection(Meteor.users);

      $scope.clearUsers = function () {
        $scope.twitterAccs = $meteor.collection(Meteor.users.remove({}) );
        console.log("hello");
      }
  }]);
}

1 个答案:

答案 0 :(得分:1)

我认为这仅用于开发目的吗?允许您网站的访问者删除所有用户会很糟糕。事实上你有一个很好的按钮设置它让我担心它是一个功能!

最简单的方法是连接一个像

这样的Meteor.method
if (Meteor.isServer) {
  Meteor.methods({
    clearUsers: function() {
      Meteor.users.remove({});
    }
  });
}

然后在你的console.log(&#34; hello&#34;)所在的地方做一个Meteor.call(&#39; clearUsers&#39;)。您也可以通过浏览器控制台运行呼叫,我有时会进行此设置,而不是通过终端直接转到数据库。

您也可以通过允许拒绝规则来执行此操作(请参阅:http://docs.meteor.com/#/full/allow),默认设置规则,以便用户只能编辑自己的配置文件对象。

最后你可以包括meteor包不安全(我假设你必须已经删除它),这将允许任何人编辑任何集合,假设你还没有设置上面提到的任何允许,拒绝规则。