summaryrefslogtreecommitdiffstats
path: root/models/boards.js
diff options
context:
space:
mode:
Diffstat (limited to 'models/boards.js')
-rw-r--r--models/boards.js59
1 files changed, 27 insertions, 32 deletions
diff --git a/models/boards.js b/models/boards.js
index 6aba0b1e..9c792674 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -115,6 +115,14 @@ Boards.helpers({
return _.pluck(this.members, 'userId').indexOf(memberId);
},
+ hasMember(memberId) {
+ return !!_.findWhere(this.members, {userId: memberId, isActive: true});
+ },
+
+ hasAdmin(memberId) {
+ return !!_.findWhere(this.members, {userId: memberId, isActive: true, isAdmin: true});
+ },
+
absoluteUrl() {
return FlowRouter.path('board', { id: this._id, slug: this.slug });
},
@@ -186,34 +194,23 @@ Boards.mutations({
addMember(memberId) {
const memberIndex = this.memberIndex(memberId);
- if (memberIndex === -1) {
- const xIndex = this.memberIndex('x');
- if (xIndex === -1) {
- return {
- $push: {
- members: {
- userId: memberId,
- isAdmin: false,
- isActive: true,
- },
- },
- };
- } else {
- return {
- $set: {
- [`members.${xIndex}.userId`]: memberId,
- [`members.${xIndex}.isActive`]: true,
- [`members.${xIndex}.isAdmin`]: false,
- },
- };
- }
- } else {
+ if (memberIndex >= 0) {
return {
$set: {
[`members.${memberIndex}.isActive`]: true,
},
};
}
+
+ return {
+ $push: {
+ members: {
+ userId: memberId,
+ isAdmin: false,
+ isActive: true,
+ },
+ },
+ };
},
removeMember(memberId) {
@@ -221,22 +218,20 @@ Boards.mutations({
// we do not allow the only one admin to be removed
const allowRemove = (!this.members[memberIndex].isAdmin) || (this.activeAdmins().length > 1);
-
- if (allowRemove) {
- return {
- $set: {
- [`members.${memberIndex}.userId`]: 'x',
- [`members.${memberIndex}.isActive`]: false,
- [`members.${memberIndex}.isAdmin`]: false,
- },
- };
- } else {
+ if (!allowRemove) {
return {
$set: {
[`members.${memberIndex}.isActive`]: true,
},
};
}
+
+ return {
+ $set: {
+ [`members.${memberIndex}.isActive`]: false,
+ [`members.${memberIndex}.isAdmin`]: false,
+ },
+ };
},
setMemberPermission(memberId, isAdmin) {