diff options
author | Maxime Quandalle <maxime@quandalle.com> | 2015-09-05 01:31:25 +0200 |
---|---|---|
committer | Maxime Quandalle <maxime@quandalle.com> | 2015-09-05 01:37:55 +0200 |
commit | 82b322777852b0f7b3f93295a0dbcc0c238bd20d (patch) | |
tree | cb75983a021909ac96f99bdb1448cd2ebee72b48 /collections | |
parent | 6a92963e2a79e2819b7492a0389c1c48a9467ba3 (diff) | |
download | wekan-82b322777852b0f7b3f93295a0dbcc0c238bd20d.tar.gz wekan-82b322777852b0f7b3f93295a0dbcc0c238bd20d.tar.bz2 wekan-82b322777852b0f7b3f93295a0dbcc0c238bd20d.zip |
Fix member permission modification
Fixes #280
Diffstat (limited to 'collections')
-rw-r--r-- | collections/boards.js | 8 | ||||
-rw-r--r-- | collections/users.js | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/collections/boards.js b/collections/boards.js index 8260fc3d..ddfa5016 100644 --- a/collections/boards.js +++ b/collections/boards.js @@ -123,16 +123,24 @@ Boards.helpers({ isPublic() { return this.permission === 'public'; }, + lists() { return Lists.find({ boardId: this._id, archived: false }, { sort: { sort: 1 }}); }, + activities() { return Activities.find({ boardId: this._id }, { sort: { createdAt: -1 }}); }, + + activeMembers() { + return _.where(this.members, {isActive: true}); + }, + absoluteUrl() { return FlowRouter.path('board', { id: this._id, slug: this.slug }); }, + colorClass() { return `board-color-${this.color}`; }, diff --git a/collections/users.js b/collections/users.js index 276c9f9e..34a94605 100644 --- a/collections/users.js +++ b/collections/users.js @@ -12,23 +12,27 @@ Users.helpers({ boards() { return Boards.find({ userId: this._id }); }, + starredBoards() { const starredBoardIds = this.profile.starredBoards || []; return Boards.find({archived: false, _id: {$in: starredBoardIds}}); }, + hasStarred(boardId) { const starredBoardIds = this.profile.starredBoards || []; return _.contains(starredBoardIds, boardId); }, + isBoardMember() { const board = Boards.findOne(Session.get('currentBoard')); return board && _.contains(_.pluck(board.members, 'userId'), this._id) && _.where(board.members, {userId: this._id})[0].isActive; }, + isBoardAdmin() { const board = Boards.findOne(Session.get('currentBoard')); - if (this.isBoardMember(board)) - return _.where(board.members, {userId: this._id})[0].isAdmin; + return board && this.isBoardMember(board) && + _.where(board.members, {userId: this._id})[0].isAdmin; }, getInitials() { |