MEAN Angular up-voting函数抛出禁止消息

时间:2016-01-22 15:52:23

标签: angularjs meanjs

我想要做的是创建一个应用程序,用户可以发布项目,其他人可以投票类似于Reddit等项目。

问题是,当一个用户对另一个用户发布的项目进行投票时,他们会收到禁止的消息。

我如何做到这一点,以便一个用户可以修改另一个用户项目的投票数。

这是项目的模型

    var ItemSchema = new Schema({
    title: {
        type: String,
        default: 'NA',
        required: 'Please fill Item title',
        trim: true
    },
    link: {
        type: String,
        required: 'Please fill Item URL',
        trim: true
    },
    details: {
        type: String,
        default: 'NA',
        required: 'Please fill Item Details',
        trim: true
    },
    votes: {
        type: Number,
        default: '0'
    },
    voters: [{
        type: Schema.ObjectId,
        ref: 'User'
    }],
    created: {
        type: Date,
        default: Date.now
    },
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }

});

因此,一个用户应该能够为另一个用户增加upvotes项目。

路线

      // Items collection routes
  app.route('/items').all(itemsPolicy.isAllowed)
      .get(items.list)
      .post(items.create);

  app.route('/items/itemCount').all()
      .get(items.countitems);

  app.route('/items/itemCountToday').all()
      .get(items.countitemsToday);


  // Single item routes
  app.route('/items/:itemId').all(itemsPolicy.isAllowed)
      .get(items.read)
      .put(items.update)
      .delete(items.delete);

Upvote功能

$scope.upVoteHome = function(item) {
        item.votes++;
        item.$update(function() {
            //$location.path('items/' + item._id);
        }, function(errorResponse) {
            // rollback votes on fail also
            $scope.error = errorResponse.data.message;
        });
    };

按钮

<button ng-show="authentication.user" ng-click="upVoteHome(item)" type="button"
 class="btn btn-danger vote-up-button"><i class="glyphicon glyphicon-arrow-up"></i> Hot</button>

1 个答案:

答案 0 :(得分:0)

添加&#39; put&#39;路由策略中的权限

  {
    roles: ['user'],
    allows: [{
      resources: '/deals',
      permissions: ['get', 'post', 'put']
    }, {
      resources: '/deals/:dealId',
      permissions: ['get', 'put']
    }]
  }