mirror of
https://github.com/wekan/wekan.git
synced 2025-12-29 05:38:48 +01:00
parent
7e036b9df3
commit
14b2c1309f
5 changed files with 237 additions and 118 deletions
|
|
@ -268,7 +268,7 @@ template(name="editOrgPopup")
|
||||||
form
|
form
|
||||||
label.hide.orgId(type="text" value=org._id)
|
label.hide.orgId(type="text" value=org._id)
|
||||||
label
|
label
|
||||||
| {{_ 'orgDisplayName'}}
|
| {{_ 'displayName'}}
|
||||||
input.js-orgDisplayName(type="text" value=org.orgDisplayName required)
|
input.js-orgDisplayName(type="text" value=org.orgDisplayName required)
|
||||||
span.error.hide.orgname-taken
|
span.error.hide.orgname-taken
|
||||||
| {{_ 'error-orgname-taken'}}
|
| {{_ 'error-orgname-taken'}}
|
||||||
|
|
@ -478,27 +478,39 @@ template(name="newUserPopup")
|
||||||
template(name="settingsOrgPopup")
|
template(name="settingsOrgPopup")
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li
|
li
|
||||||
a.impersonate-org
|
br
|
||||||
i.fa.fa-user
|
br
|
||||||
| {{_ 'impersonate-org'}}
|
br
|
||||||
// Delete is not enabled yet, because it does leave empty user avatars
|
br
|
||||||
// to boards: boards members, card members and assignees have
|
hr
|
||||||
// empty users. See:
|
li
|
||||||
// - wekan/client/components/settings/peopleBody.jade deleteButton
|
form
|
||||||
// - wekan/client/components/settings/peopleBody.js deleteButton
|
label.hide.orgId(type="text" value=org._id)
|
||||||
// - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
|
div.buttonsContainer
|
||||||
// that does now remove member from board, card members and assignees correctly,
|
input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
|
||||||
// but that should be used to remove user from all boards similarly
|
// It's not yet possible to impersonate organization. Only impersonate user,
|
||||||
// - wekan/models/users.js Delete is not enabled
|
// because that changes current user ID. What would it mean in practice
|
||||||
//li
|
// to impersonate organization?
|
||||||
// br
|
// li
|
||||||
// br
|
// a.impersonate-org
|
||||||
// hr
|
// i.fa.fa-user
|
||||||
//li
|
// | {{_ 'impersonate-org'}}
|
||||||
// form
|
//
|
||||||
// label.hide.userId(type="text" value=user._id)
|
//
|
||||||
// div.buttonsContainer
|
|
||||||
// input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
|
template(name="settingsTeamPopup")
|
||||||
|
ul.pop-over-list
|
||||||
|
li
|
||||||
|
br
|
||||||
|
br
|
||||||
|
br
|
||||||
|
br
|
||||||
|
hr
|
||||||
|
li
|
||||||
|
form
|
||||||
|
label.hide.teamId(type="text" value=team._id)
|
||||||
|
div.buttonsContainer
|
||||||
|
input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
|
||||||
|
|
||||||
template(name="settingsUserPopup")
|
template(name="settingsUserPopup")
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
|
|
@ -506,6 +518,15 @@ template(name="settingsUserPopup")
|
||||||
a.impersonate-user
|
a.impersonate-user
|
||||||
i.fa.fa-user
|
i.fa.fa-user
|
||||||
| {{_ 'impersonate-user'}}
|
| {{_ 'impersonate-user'}}
|
||||||
|
li
|
||||||
|
br
|
||||||
|
br
|
||||||
|
//hr
|
||||||
|
//li
|
||||||
|
// form
|
||||||
|
// label.hide.userId(type="text" value=user._id)
|
||||||
|
// div.buttonsContainer
|
||||||
|
// input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
|
||||||
// Delete is not enabled yet, because it does leave empty user avatars
|
// Delete is not enabled yet, because it does leave empty user avatars
|
||||||
// to boards: boards members, card members and assignees have
|
// to boards: boards members, card members and assignees have
|
||||||
// empty users. See:
|
// empty users. See:
|
||||||
|
|
@ -515,12 +536,3 @@ template(name="settingsUserPopup")
|
||||||
// that does now remove member from board, card members and assignees correctly,
|
// that does now remove member from board, card members and assignees correctly,
|
||||||
// but that should be used to remove user from all boards similarly
|
// but that should be used to remove user from all boards similarly
|
||||||
// - wekan/models/users.js Delete is not enabled
|
// - wekan/models/users.js Delete is not enabled
|
||||||
//li
|
|
||||||
// br
|
|
||||||
// br
|
|
||||||
// hr
|
|
||||||
//li
|
|
||||||
// form
|
|
||||||
// label.hide.userId(type="text" value=user._id)
|
|
||||||
// div.buttonsContainer
|
|
||||||
// input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
|
|
||||||
|
|
|
||||||
|
|
@ -101,9 +101,7 @@ BlazeComponent.extendComponent({
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
filterPeople() {
|
filterPeople() {
|
||||||
const value = $('#searchInput')
|
const value = $('#searchInput').first().val();
|
||||||
.first()
|
|
||||||
.val();
|
|
||||||
if (value === '') {
|
if (value === '') {
|
||||||
this.findUsersOptions.set({});
|
this.findUsersOptions.set({});
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -203,7 +201,7 @@ Template.peopleRow.helpers({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.editUserPopup.onCreated(function() {
|
Template.editUserPopup.onCreated(function () {
|
||||||
this.authenticationMethods = new ReactiveVar([]);
|
this.authenticationMethods = new ReactiveVar([]);
|
||||||
this.errorMessage = new ReactiveVar('');
|
this.errorMessage = new ReactiveVar('');
|
||||||
|
|
||||||
|
|
@ -215,8 +213,8 @@ Template.editUserPopup.onCreated(function() {
|
||||||
{ value: 'password' },
|
{ value: 'password' },
|
||||||
// Gets only the authentication methods availables
|
// Gets only the authentication methods availables
|
||||||
...Object.entries(result)
|
...Object.entries(result)
|
||||||
.filter(e => e[1])
|
.filter((e) => e[1])
|
||||||
.map(e => ({ value: e[0] })),
|
.map((e) => ({ value: e[0] })),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -262,15 +260,15 @@ Template.editUserPopup.helpers({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.newOrgPopup.onCreated(function() {
|
Template.newOrgPopup.onCreated(function () {
|
||||||
this.errorMessage = new ReactiveVar('');
|
this.errorMessage = new ReactiveVar('');
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.newTeamPopup.onCreated(function() {
|
Template.newTeamPopup.onCreated(function () {
|
||||||
this.errorMessage = new ReactiveVar('');
|
this.errorMessage = new ReactiveVar('');
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.newUserPopup.onCreated(function() {
|
Template.newUserPopup.onCreated(function () {
|
||||||
this.authenticationMethods = new ReactiveVar([]);
|
this.authenticationMethods = new ReactiveVar([]);
|
||||||
this.errorMessage = new ReactiveVar('');
|
this.errorMessage = new ReactiveVar('');
|
||||||
|
|
||||||
|
|
@ -282,8 +280,8 @@ Template.newUserPopup.onCreated(function() {
|
||||||
{ value: 'password' },
|
{ value: 'password' },
|
||||||
// Gets only the authentication methods availables
|
// Gets only the authentication methods availables
|
||||||
...Object.entries(result)
|
...Object.entries(result)
|
||||||
.filter(e => e[1])
|
.filter((e) => e[1])
|
||||||
.map(e => ({ value: e[0] })),
|
.map((e) => ({ value: e[0] })),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -415,7 +413,8 @@ Template.editOrgPopup.events({
|
||||||
const orgDesc = templateInstance.find('.js-orgDesc').value.trim();
|
const orgDesc = templateInstance.find('.js-orgDesc').value.trim();
|
||||||
const orgShortName = templateInstance.find('.js-orgShortName').value.trim();
|
const orgShortName = templateInstance.find('.js-orgShortName').value.trim();
|
||||||
const orgWebsite = templateInstance.find('.js-orgWebsite').value.trim();
|
const orgWebsite = templateInstance.find('.js-orgWebsite').value.trim();
|
||||||
const orgIsActive = templateInstance.find('.js-org-isactive').value.trim() == 'true';
|
const orgIsActive =
|
||||||
|
templateInstance.find('.js-org-isactive').value.trim() == 'true';
|
||||||
|
|
||||||
const isChangeOrgDisplayName = orgDisplayName !== org.orgDisplayName;
|
const isChangeOrgDisplayName = orgDisplayName !== org.orgDisplayName;
|
||||||
const isChangeOrgDesc = orgDesc !== org.orgDesc;
|
const isChangeOrgDesc = orgDesc !== org.orgDesc;
|
||||||
|
|
@ -423,26 +422,24 @@ Template.editOrgPopup.events({
|
||||||
const isChangeOrgWebsite = orgWebsite !== org.orgWebsite;
|
const isChangeOrgWebsite = orgWebsite !== org.orgWebsite;
|
||||||
const isChangeOrgIsActive = orgIsActive !== org.orgIsActive;
|
const isChangeOrgIsActive = orgIsActive !== org.orgIsActive;
|
||||||
|
|
||||||
if(isChangeOrgDisplayName || isChangeOrgDesc || isChangeOrgShortName || isChangeOrgWebsite || isChangeOrgIsActive){
|
if (
|
||||||
Meteor.call('setOrgAllFields', org, orgDisplayName, orgDesc, orgShortName, orgWebsite, orgIsActive);
|
isChangeOrgDisplayName ||
|
||||||
|
isChangeOrgDesc ||
|
||||||
|
isChangeOrgShortName ||
|
||||||
|
isChangeOrgWebsite ||
|
||||||
|
isChangeOrgIsActive
|
||||||
|
) {
|
||||||
|
Meteor.call(
|
||||||
|
'setOrgAllFields',
|
||||||
|
org,
|
||||||
|
orgDisplayName,
|
||||||
|
orgDesc,
|
||||||
|
orgShortName,
|
||||||
|
orgWebsite,
|
||||||
|
orgIsActive,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (isChangeOrgDisplayName) {
|
|
||||||
// Meteor.call('setOrgDisplayName', org, orgDisplayName);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeOrgDesc) {
|
|
||||||
// Meteor.call('setOrgDesc', org, orgDesc);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeOrgShortName) {
|
|
||||||
// Meteor.call('setOrgShortName', org, orgShortName);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeOrgIsActive) {
|
|
||||||
// Meteor.call('setOrgIsActive', org, orgIsActive);
|
|
||||||
// }
|
|
||||||
|
|
||||||
Popup.close();
|
Popup.close();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -460,7 +457,8 @@ Template.editTeamPopup.events({
|
||||||
.find('.js-teamShortName')
|
.find('.js-teamShortName')
|
||||||
.value.trim();
|
.value.trim();
|
||||||
const teamWebsite = templateInstance.find('.js-teamWebsite').value.trim();
|
const teamWebsite = templateInstance.find('.js-teamWebsite').value.trim();
|
||||||
const teamIsActive = templateInstance.find('.js-team-isactive').value.trim() == 'true';
|
const teamIsActive =
|
||||||
|
templateInstance.find('.js-team-isactive').value.trim() == 'true';
|
||||||
|
|
||||||
const isChangeTeamDisplayName = teamDisplayName !== team.teamDisplayName;
|
const isChangeTeamDisplayName = teamDisplayName !== team.teamDisplayName;
|
||||||
const isChangeTeamDesc = teamDesc !== team.teamDesc;
|
const isChangeTeamDesc = teamDesc !== team.teamDesc;
|
||||||
|
|
@ -468,24 +466,23 @@ Template.editTeamPopup.events({
|
||||||
const isChangeTeamWebsite = teamWebsite !== team.teamWebsite;
|
const isChangeTeamWebsite = teamWebsite !== team.teamWebsite;
|
||||||
const isChangeTeamIsActive = teamIsActive !== team.teamIsActive;
|
const isChangeTeamIsActive = teamIsActive !== team.teamIsActive;
|
||||||
|
|
||||||
if(isChangeTeamDisplayName || isChangeTeamDesc || isChangeTeamShortName || isChangeTeamWebsite || isChangeTeamIsActive){
|
if (
|
||||||
Meteor.call('setTeamAllFields', team, teamDisplayName, teamDesc, teamShortName, teamWebsite, teamIsActive);
|
isChangeTeamDisplayName ||
|
||||||
|
isChangeTeamDesc ||
|
||||||
|
isChangeTeamShortName ||
|
||||||
|
isChangeTeamWebsite ||
|
||||||
|
isChangeTeamIsActive
|
||||||
|
) {
|
||||||
|
Meteor.call(
|
||||||
|
'setTeamAllFields',
|
||||||
|
team,
|
||||||
|
teamDisplayName,
|
||||||
|
teamDesc,
|
||||||
|
teamShortName,
|
||||||
|
teamWebsite,
|
||||||
|
teamIsActive,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// if (isChangeTeamDisplayName) {
|
|
||||||
// Meteor.call('setTeamDisplayName', team, teamDisplayName);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeTeamDesc) {
|
|
||||||
// Meteor.call('setTeamDesc', team, teamDesc);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeTeamShortName) {
|
|
||||||
// Meteor.call('setTeamShortName', team, teamShortName);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isChangeTeamIsActive) {
|
|
||||||
// Meteor.call('setTeamIsActive', team, teamIsActive);
|
|
||||||
// }
|
|
||||||
|
|
||||||
Popup.close();
|
Popup.close();
|
||||||
},
|
},
|
||||||
|
|
@ -553,7 +550,7 @@ Template.editUserPopup.events({
|
||||||
username,
|
username,
|
||||||
email.toLowerCase(),
|
email.toLowerCase(),
|
||||||
this.userId,
|
this.userId,
|
||||||
function(error) {
|
function (error) {
|
||||||
const usernameMessageElement = templateInstance.$('.username-taken');
|
const usernameMessageElement = templateInstance.$('.username-taken');
|
||||||
const emailMessageElement = templateInstance.$('.email-taken');
|
const emailMessageElement = templateInstance.$('.email-taken');
|
||||||
if (error) {
|
if (error) {
|
||||||
|
|
@ -573,7 +570,7 @@ Template.editUserPopup.events({
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
} else if (isChangeUserName) {
|
} else if (isChangeUserName) {
|
||||||
Meteor.call('setUsername', username, this.userId, function(error) {
|
Meteor.call('setUsername', username, this.userId, function (error) {
|
||||||
const usernameMessageElement = templateInstance.$('.username-taken');
|
const usernameMessageElement = templateInstance.$('.username-taken');
|
||||||
if (error) {
|
if (error) {
|
||||||
const errorElement = error.error;
|
const errorElement = error.error;
|
||||||
|
|
@ -586,20 +583,23 @@ Template.editUserPopup.events({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (isChangeEmail) {
|
} else if (isChangeEmail) {
|
||||||
Meteor.call('setEmail', email.toLowerCase(), this.userId, function(
|
Meteor.call(
|
||||||
error,
|
'setEmail',
|
||||||
) {
|
email.toLowerCase(),
|
||||||
const emailMessageElement = templateInstance.$('.email-taken');
|
this.userId,
|
||||||
if (error) {
|
function (error) {
|
||||||
const errorElement = error.error;
|
const emailMessageElement = templateInstance.$('.email-taken');
|
||||||
if (errorElement === 'email-already-taken') {
|
if (error) {
|
||||||
emailMessageElement.show();
|
const errorElement = error.error;
|
||||||
|
if (errorElement === 'email-already-taken') {
|
||||||
|
emailMessageElement.show();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
emailMessageElement.hide();
|
||||||
|
Popup.close();
|
||||||
}
|
}
|
||||||
} else {
|
},
|
||||||
emailMessageElement.hide();
|
);
|
||||||
Popup.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else Popup.close();
|
} else Popup.close();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -613,7 +613,8 @@ Template.newOrgPopup.events({
|
||||||
const orgDesc = templateInstance.find('.js-orgDesc').value.trim();
|
const orgDesc = templateInstance.find('.js-orgDesc').value.trim();
|
||||||
const orgShortName = templateInstance.find('.js-orgShortName').value.trim();
|
const orgShortName = templateInstance.find('.js-orgShortName').value.trim();
|
||||||
const orgWebsite = templateInstance.find('.js-orgWebsite').value.trim();
|
const orgWebsite = templateInstance.find('.js-orgWebsite').value.trim();
|
||||||
const orgIsActive = templateInstance.find('.js-org-isactive').value.trim() == 'true';
|
const orgIsActive =
|
||||||
|
templateInstance.find('.js-org-isactive').value.trim() == 'true';
|
||||||
|
|
||||||
Meteor.call(
|
Meteor.call(
|
||||||
'setCreateOrg',
|
'setCreateOrg',
|
||||||
|
|
@ -638,7 +639,8 @@ Template.newTeamPopup.events({
|
||||||
.find('.js-teamShortName')
|
.find('.js-teamShortName')
|
||||||
.value.trim();
|
.value.trim();
|
||||||
const teamWebsite = templateInstance.find('.js-teamWebsite').value.trim();
|
const teamWebsite = templateInstance.find('.js-teamWebsite').value.trim();
|
||||||
const teamIsActive = templateInstance.find('.js-team-isactive').value.trim() == 'true';
|
const teamIsActive =
|
||||||
|
templateInstance.find('.js-team-isactive').value.trim() == 'true';
|
||||||
|
|
||||||
Meteor.call(
|
Meteor.call(
|
||||||
'setCreateTeam',
|
'setCreateTeam',
|
||||||
|
|
@ -676,7 +678,7 @@ Template.newUserPopup.events({
|
||||||
isActive,
|
isActive,
|
||||||
email.toLowerCase(),
|
email.toLowerCase(),
|
||||||
importUsernames,
|
importUsernames,
|
||||||
function(error) {
|
function (error) {
|
||||||
const usernameMessageElement = templateInstance.$('.username-taken');
|
const usernameMessageElement = templateInstance.$('.username-taken');
|
||||||
const emailMessageElement = templateInstance.$('.email-taken');
|
const emailMessageElement = templateInstance.$('.email-taken');
|
||||||
if (error) {
|
if (error) {
|
||||||
|
|
@ -699,11 +701,27 @@ Template.newUserPopup.events({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Template.settingsOrgPopup.events({
|
||||||
|
'click #deleteButton'(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
Org.remove(this.orgId);
|
||||||
|
Popup.close();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
Template.settingsTeamPopup.events({
|
||||||
|
'click #deleteButton'(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
Team.remove(this.teamId);
|
||||||
|
Popup.close();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
Template.settingsUserPopup.events({
|
Template.settingsUserPopup.events({
|
||||||
'click .impersonate-user'(event) {
|
'click .impersonate-user'(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
Meteor.call('impersonate', this.userId, err => {
|
Meteor.call('impersonate', this.userId, (err) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
FlowRouter.go('/');
|
FlowRouter.go('/');
|
||||||
Meteor.connection.setUserId(this.userId);
|
Meteor.connection.setUserId(this.userId);
|
||||||
|
|
@ -723,21 +741,6 @@ Template.settingsUserPopup.events({
|
||||||
// but that should be used to remove user from all boards similarly
|
// but that should be used to remove user from all boards similarly
|
||||||
// - wekan/models/users.js Delete is not enabled
|
// - wekan/models/users.js Delete is not enabled
|
||||||
//
|
//
|
||||||
//console.log('user id: ' + this.userId);
|
|
||||||
//Popup.afterConfirm('userDelete', function(event) {
|
|
||||||
//Boards.find({ members: this.userId }).forEach(board => {
|
|
||||||
// console.log('board id: ' + board._id);
|
|
||||||
//Cards.find({ boardId: board._id, members: this.userId }).forEach(card => {
|
|
||||||
// card.unassignMember(this.userId);
|
|
||||||
//});
|
|
||||||
//Cards.find({ boardId: board._id, members: this.userId }).forEach(card => {
|
|
||||||
// card.unassignMember(this.userId);
|
|
||||||
//});
|
|
||||||
//Cards.find({ boardId: board._id, assignees: this.userId }).forEach(card => {
|
|
||||||
// card.unassignAssignee(this.userId);
|
|
||||||
//});
|
|
||||||
//Boards.findOne({ boardId: board._id }).removeMember(this.userId);
|
|
||||||
//});
|
|
||||||
//Users.remove(this.userId);
|
//Users.remove(this.userId);
|
||||||
*/
|
*/
|
||||||
Popup.close();
|
Popup.close();
|
||||||
|
|
|
||||||
|
|
@ -443,6 +443,8 @@
|
||||||
"set-color-list": "Set Color",
|
"set-color-list": "Set Color",
|
||||||
"listActionPopup-title": "List Actions",
|
"listActionPopup-title": "List Actions",
|
||||||
"settingsUserPopup-title": "User Settings",
|
"settingsUserPopup-title": "User Settings",
|
||||||
|
"settingsTeamPopup-title": "Team Settings",
|
||||||
|
"settingsOrgPopup-title": "Organization Settings",
|
||||||
"swimlaneActionPopup-title": "Swimlane Actions",
|
"swimlaneActionPopup-title": "Swimlane Actions",
|
||||||
"swimlaneAddPopup-title": "Add a Swimlane below",
|
"swimlaneAddPopup-title": "Add a Swimlane below",
|
||||||
"listImportCardPopup-title": "Import a Trello card",
|
"listImportCardPopup-title": "Import a Trello card",
|
||||||
|
|
@ -839,6 +841,8 @@
|
||||||
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
|
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
|
||||||
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
|
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
|
||||||
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
|
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
|
||||||
|
"delete-team-confirm-popup": "Are you sure you want to delete this team? There is no undo.",
|
||||||
|
"delete-org-confirm-popup": "Are you sure you want to delete this organization? There is no undo.",
|
||||||
"accounts-allowUserDelete": "Allow users to self delete their account",
|
"accounts-allowUserDelete": "Allow users to self delete their account",
|
||||||
"hide-minicard-label-text": "Hide minicard label text",
|
"hide-minicard-label-text": "Hide minicard label text",
|
||||||
"show-desktop-drag-handles": "Show desktop drag handles",
|
"show-desktop-drag-handles": "Show desktop drag handles",
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,43 @@ Org.attachSchema(
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
|
Org.allow({
|
||||||
|
insert(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
update(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
remove(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
fetch: [],
|
||||||
|
});
|
||||||
|
|
||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
setCreateOrg(
|
setCreateOrg(
|
||||||
orgDisplayName,
|
orgDisplayName,
|
||||||
|
|
@ -111,7 +148,7 @@ if (Meteor.isServer) {
|
||||||
check(org, Object);
|
check(org, Object);
|
||||||
check(orgDisplayName, String);
|
check(orgDisplayName, String);
|
||||||
Org.update(org, {
|
Org.update(org, {
|
||||||
$set: { orgDisplayName: orgDisplayNameorgShortName},
|
$set: { orgDisplayName: orgDisplayNameorgShortName },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -146,7 +183,14 @@ if (Meteor.isServer) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setOrgAllFields(org, orgDisplayName, orgDesc, orgShortName, orgWebsite, orgIsActive) {
|
setOrgAllFields(
|
||||||
|
org,
|
||||||
|
orgDisplayName,
|
||||||
|
orgDesc,
|
||||||
|
orgShortName,
|
||||||
|
orgWebsite,
|
||||||
|
orgIsActive,
|
||||||
|
) {
|
||||||
if (Meteor.user() && Meteor.user().isAdmin) {
|
if (Meteor.user() && Meteor.user().isAdmin) {
|
||||||
check(org, Object);
|
check(org, Object);
|
||||||
check(orgDisplayName, String);
|
check(orgDisplayName, String);
|
||||||
|
|
@ -155,7 +199,13 @@ if (Meteor.isServer) {
|
||||||
check(orgWebsite, String);
|
check(orgWebsite, String);
|
||||||
check(orgIsActive, Boolean);
|
check(orgIsActive, Boolean);
|
||||||
Org.update(org, {
|
Org.update(org, {
|
||||||
$set: { orgDisplayName : orgDisplayName, orgDesc : orgDesc, orgShortName : orgShortName, orgWebsite : orgWebsite, orgIsActive: orgIsActive },
|
$set: {
|
||||||
|
orgDisplayName: orgDisplayName,
|
||||||
|
orgDesc: orgDesc,
|
||||||
|
orgShortName: orgShortName,
|
||||||
|
orgWebsite: orgWebsite,
|
||||||
|
orgIsActive: orgIsActive,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,43 @@ Team.attachSchema(
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
|
Team.allow({
|
||||||
|
insert(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
update(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
remove(userId, doc) {
|
||||||
|
const user = Users.findOne({
|
||||||
|
_id: userId,
|
||||||
|
});
|
||||||
|
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
|
||||||
|
return true;
|
||||||
|
if (!user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return doc._id === userId;
|
||||||
|
},
|
||||||
|
fetch: [],
|
||||||
|
});
|
||||||
|
|
||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
setCreateTeam(
|
setCreateTeam(
|
||||||
teamDisplayName,
|
teamDisplayName,
|
||||||
|
|
@ -145,7 +182,14 @@ if (Meteor.isServer) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setTeamAllFields(team, teamDisplayName, teamDesc, teamShortName, teamWebsite, teamIsActive) {
|
setTeamAllFields(
|
||||||
|
team,
|
||||||
|
teamDisplayName,
|
||||||
|
teamDesc,
|
||||||
|
teamShortName,
|
||||||
|
teamWebsite,
|
||||||
|
teamIsActive,
|
||||||
|
) {
|
||||||
if (Meteor.user() && Meteor.user().isAdmin) {
|
if (Meteor.user() && Meteor.user().isAdmin) {
|
||||||
check(team, Object);
|
check(team, Object);
|
||||||
check(teamDisplayName, String);
|
check(teamDisplayName, String);
|
||||||
|
|
@ -154,7 +198,13 @@ if (Meteor.isServer) {
|
||||||
check(teamWebsite, String);
|
check(teamWebsite, String);
|
||||||
check(teamIsActive, Boolean);
|
check(teamIsActive, Boolean);
|
||||||
Team.update(team, {
|
Team.update(team, {
|
||||||
$set: { teamDisplayName: teamDisplayName, teamDesc: teamDesc, teamShortName: teamShortName, teamWebsite: teamWebsite, teamIsActive: teamIsActive },
|
$set: {
|
||||||
|
teamDisplayName: teamDisplayName,
|
||||||
|
teamDesc: teamDesc,
|
||||||
|
teamShortName: teamShortName,
|
||||||
|
teamWebsite: teamWebsite,
|
||||||
|
teamIsActive: teamIsActive,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue