summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorRomulus Urakagi Tsai <urakagi@gmail.com>2020-02-13 09:02:26 +0000
committerRomulus Urakagi Tsai <urakagi@gmail.com>2020-02-13 09:02:26 +0000
commit4b196d537896f39fb76090020cb5851a699546eb (patch)
tree28e2e025ce90645ed360bb8c26ab39e6f40214e4 /server
parentb34ed58289a3dae5838d3b621260938a3ecf52d5 (diff)
parent3fcde252f705f9527f7190517082a047714a4eec (diff)
downloadwekan-4b196d537896f39fb76090020cb5851a699546eb.tar.gz
wekan-4b196d537896f39fb76090020cb5851a699546eb.tar.bz2
wekan-4b196d537896f39fb76090020cb5851a699546eb.zip
Merge branch 'master' of https://github.com/wekan/wekan into lib-change
Diffstat (limited to 'server')
-rw-r--r--server/authentication.js2
-rw-r--r--server/migrations.js331
-rw-r--r--server/rulesHelper.js74
3 files changed, 346 insertions, 61 deletions
diff --git a/server/authentication.js b/server/authentication.js
index 9e519fe1..20327280 100644
--- a/server/authentication.js
+++ b/server/authentication.js
@@ -58,7 +58,7 @@ Meteor.startup(() => {
const board = Boards.findOne({ _id: boardId });
const normalAccess =
board.permission === 'public' ||
- board.members.some(e => e.userId === userId).isActive;
+ board.members.some(e => e.userId === userId && e.isActive);
Authentication.checkAdminOrCondition(userId, normalAccess);
};
diff --git a/server/migrations.js b/server/migrations.js
index e7c18e09..d7c4c724 100644
--- a/server/migrations.js
+++ b/server/migrations.js
@@ -17,7 +17,6 @@ import Swimlanes from '../models/swimlanes';
import Triggers from '../models/triggers';
import UnsavedEdits from '../models/unsavedEdits';
import Users from '../models/users';
-import CFSAttachments from './migrate-attachments';
// Anytime you change the schema of one of the collection in a non-backward
// compatible way you have to write a migration in this file using the following
@@ -81,7 +80,7 @@ Migrations.add('lowercase-board-permission', () => {
Migrations.add('change-attachments-type-for-non-images', () => {
const newTypeForNonImage = 'application/octet-stream';
Attachments.find().forEach(file => {
- if (!file.isImage) {
+ if (!file.isImage()) {
Attachments.update(
file._id,
{
@@ -98,7 +97,7 @@ Migrations.add('change-attachments-type-for-non-images', () => {
Migrations.add('card-covers', () => {
Cards.find().forEach(card => {
- const cover = Attachments.findOne({ 'meta.cardId': card._id, cover: true });
+ const cover = Attachments.findOne({ cardId: card._id, cover: true });
if (cover) {
Cards.update(card._id, { $set: { coverId: cover._id } }, noValidate);
}
@@ -473,38 +472,6 @@ Migrations.add('add-hide-logo', () => {
);
});
-Migrations.add('add-custom-html-after-body-start', () => {
- Settings.update(
- {
- customHTMLafterBodyStart: {
- $exists: false,
- },
- },
- {
- $set: {
- customHTMLafterBodyStart: '',
- },
- },
- noValidateMulti,
- );
-});
-
-Migrations.add('add-custom-html-before-body-end', () => {
- Settings.update(
- {
- customHTMLbeforeBodyEnd: {
- $exists: false,
- },
- },
- {
- $set: {
- customHTMLbeforeBodyEnd: '',
- },
- },
- noValidateMulti,
- );
-});
-
Migrations.add('add-displayAuthenticationMethod', () => {
Settings.update(
{
@@ -779,7 +746,295 @@ Migrations.add('fix-incorrect-dates', () => {
);
});
-Migrations.add('fix-incorrect-dates', () => {
- cas = CFSAttachments.find();
- console.log('cas', cas);
+Migrations.add('add-assignee', () => {
+ Cards.update(
+ {
+ assignees: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ assignees: [],
+ },
+ },
+ noValidateMulti,
+ );
});
+
+Migrations.add('add-profile-showDesktopDragHandles', () => {
+ Users.update(
+ {
+ 'profile.showDesktopDragHandles': {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ 'profile.showDesktopDragHandles': false,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-profile-hiddenMinicardLabelText', () => {
+ Users.update(
+ {
+ 'profile.hiddenMinicardLabelText': {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ 'profile.hiddenMinicardLabelText': false,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-receiveddate-allowed', () => {
+ Boards.update(
+ {
+ allowsReceivedDate: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsReceivedDate: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-startdate-allowed', () => {
+ Boards.update(
+ {
+ allowsStartDate: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsStartDate: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-duedate-allowed', () => {
+ Boards.update(
+ {
+ allowsDueDate: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsDueDate: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-enddate-allowed', () => {
+ Boards.update(
+ {
+ allowsEndDate: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsEndDate: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-members-allowed', () => {
+ Boards.update(
+ {
+ allowsMembers: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsMembers: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-assignee-allowed', () => {
+ Boards.update(
+ {
+ allowsAssignee: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsAssignee: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-labels-allowed', () => {
+ Boards.update(
+ {
+ allowsLabels: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsLabels: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-checklists-allowed', () => {
+ Boards.update(
+ {
+ allowsChecklists: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsChecklists: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-attachments-allowed', () => {
+ Boards.update(
+ {
+ allowsAttachments: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsAttachments: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-comments-allowed', () => {
+ Boards.update(
+ {
+ allowsComments: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsComments: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-assigned-by-allowed', () => {
+ Boards.update(
+ {
+ allowsAssignedBy: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsAssignedBy: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-requested-by-allowed', () => {
+ Boards.update(
+ {
+ allowsRequestedBy: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsRequestedBy: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-activities-allowed', () => {
+ Boards.update(
+ {
+ allowsActivities: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsActivities: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-description-title-allowed', () => {
+ Boards.update(
+ {
+ allowsDescriptionTitle: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsDescriptionTitle: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('add-description-text-allowed', () => {
+ Boards.update(
+ {
+ allowsDescriptionText: {
+ $exists: false,
+ },
+ },
+ {
+ $set: {
+ allowsDescriptionText: true,
+ },
+ },
+ noValidateMulti,
+ );
+});
+
+Migrations.add('fix-incorrect-dates', () => {
+ cas = CFSAttachments.find();
+ console.log('cas', cas);
+});
diff --git a/server/rulesHelper.js b/server/rulesHelper.js
index cf278c52..63e330ab 100644
--- a/server/rulesHelper.js
+++ b/server/rulesHelper.js
@@ -42,35 +42,65 @@ RulesHelper = {
performAction(activity, action) {
const card = Cards.findOne({ _id: activity.cardId });
const boardId = activity.boardId;
- if (action.actionType === 'moveCardToTop') {
- let listId;
+ if (
+ action.actionType === 'moveCardToTop' ||
+ action.actionType === 'moveCardToBottom'
+ ) {
let list;
- if (action.listTitle === '*') {
- listId = card.listId;
+ let listId;
+ if (action.listName === '*') {
list = card.list();
+ if (boardId !== action.boardId) {
+ list = Lists.findOne({ title: list.title, boardId: action.boardId });
+ }
} else {
- list = Lists.findOne({ title: action.listTitle, boardId });
- listId = list._id;
+ list = Lists.findOne({
+ title: action.listName,
+ boardId: action.boardId,
+ });
}
- const minOrder = _.min(
- list.cardsUnfiltered(card.swimlaneId).map(c => c.sort),
- );
- card.move(boardId, card.swimlaneId, listId, minOrder - 1);
- }
- if (action.actionType === 'moveCardToBottom') {
- let listId;
- let list;
- if (action.listTitle === '*') {
- listId = card.listId;
- list = card.list();
+ if (list === undefined) {
+ listId = '';
} else {
- list = Lists.findOne({ title: action.listTitle, boardId });
listId = list._id;
}
- const maxOrder = _.max(
- list.cardsUnfiltered(card.swimlaneId).map(c => c.sort),
- );
- card.move(boardId, card.swimlaneId, listId, maxOrder + 1);
+
+ let swimlane;
+ let swimlaneId;
+ if (action.swimlaneName === '*') {
+ swimlane = Swimlanes.findOne(card.swimlaneId);
+ if (boardId !== action.boardId) {
+ swimlane = Swimlanes.findOne({
+ title: swimlane.title,
+ boardId: action.boardId,
+ });
+ }
+ } else {
+ swimlane = Swimlanes.findOne({
+ title: action.swimlaneName,
+ boardId: action.boardId,
+ });
+ }
+ if (swimlane === undefined) {
+ swimlaneId = Swimlanes.findOne({
+ title: 'Default',
+ boardId: action.boardId,
+ })._id;
+ } else {
+ swimlaneId = swimlane._id;
+ }
+
+ if (action.actionType === 'moveCardToTop') {
+ const minOrder = _.min(
+ list.cardsUnfiltered(swimlaneId).map(c => c.sort),
+ );
+ card.move(action.boardId, swimlaneId, listId, minOrder - 1);
+ } else {
+ const maxOrder = _.max(
+ list.cardsUnfiltered(swimlaneId).map(c => c.sort),
+ );
+ card.move(action.boardId, swimlaneId, listId, maxOrder + 1);
+ }
}
if (action.actionType === 'sendEmail') {
const to = action.emailTo;