Move every Meteor.user() to the ReactiveCache

This commit is contained in:
Martin Filser 2023-01-16 23:00:10 +01:00
parent 6e1ef3d94a
commit 5e3a9dc059
42 changed files with 211 additions and 252 deletions

View file

@ -503,8 +503,8 @@ Users.attachSchema(
Users.allow({
update(userId, doc) {
const user = ReactiveCache.getUser(userId);
if ((user && user.isAdmin) || (Meteor.user() && Meteor.user().isAdmin))
const user = ReactiveCache.getUser(userId) || ReactiveCache.getCurrentUser();
if (user?.isAdmin)
return true;
if (!user) {
return false;
@ -540,7 +540,7 @@ Users.allow({
// Non-Admin users can not change to Admin
Users.deny({
update(userId, board, fieldNames) {
return _.contains(fieldNames, 'isAdmin') && !Meteor.user().isAdmin;
return _.contains(fieldNames, 'isAdmin') && !ReactiveCache.getCurrentUser().isAdmin;
},
fetch: [],
});
@ -1140,50 +1140,50 @@ Users.mutations({
Meteor.methods({
setListSortBy(value) {
check(value, String);
Meteor.user().setListSortBy(value);
ReactiveCache.getCurrentUser().setListSortBy(value);
},
toggleDesktopDragHandles() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleDesktopHandles(user.hasShowDesktopDragHandles());
},
toggleHideCheckedItems() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleHideCheckedItems();
},
toggleSystemMessages() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleSystem(user.hasHiddenSystemMessages());
},
toggleCustomFieldsGrid() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleFieldsGrid(user.hasCustomFieldsGrid());
},
toggleCardMaximized() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleCardMaximized(user.hasCardMaximized());
},
toggleMinicardLabelText() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleLabelText(user.hasHiddenMinicardLabelText());
},
toggleRescueCardDescription() {
const user = Meteor.user();
const user = ReactiveCache.getCurrentUser();
user.toggleRescueCardDescription(user.hasRescuedCardDescription());
},
changeLimitToShowCardsCount(limit) {
check(limit, Number);
Meteor.user().setShowCardsCountAt(limit);
ReactiveCache.getCurrentUser().setShowCardsCountAt(limit);
},
changeStartDayOfWeek(startDay) {
check(startDay, Number);
Meteor.user().setStartDayOfWeek(startDay);
ReactiveCache.getCurrentUser().setStartDayOfWeek(startDay);
},
});
if (Meteor.isServer) {
Meteor.methods({
setAllUsersHideSystemMessages() {
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
// If setting is missing, add it
Users.update(
{
@ -1241,7 +1241,7 @@ if (Meteor.isServer) {
check(importUsernames, Array);
check(userOrgsArray, Array);
check(userTeamsArray, Array);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
const nUsersWithUsername = Users.find({
username,
}).count();
@ -1283,7 +1283,7 @@ if (Meteor.isServer) {
setUsername(username, userId) {
check(username, String);
check(userId, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
const nUsersWithUsername = Users.find({
username,
}).count();
@ -1301,7 +1301,7 @@ if (Meteor.isServer) {
setEmail(email, userId) {
check(email, String);
check(username, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
if (Array.isArray(email)) {
email = email.shift();
}
@ -1335,7 +1335,7 @@ if (Meteor.isServer) {
check(username, String);
check(email, String);
check(userId, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
if (Array.isArray(email)) {
email = email.shift();
}
@ -1346,17 +1346,15 @@ if (Meteor.isServer) {
setPassword(newPassword, userId) {
check(userId, String);
check(newPassword, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (Meteor.user().isAdmin) {
Accounts.setPassword(userId, newPassword);
}
if (ReactiveCache.getCurrentUser()?.isAdmin) {
Accounts.setPassword(userId, newPassword);
}
},
setEmailVerified(email, verified, userId) {
check(email, String);
check(verified, Boolean);
check(userId, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
Users.update(userId, {
$set: {
emails: [
@ -1372,7 +1370,7 @@ if (Meteor.isServer) {
setInitials(initials, userId) {
check(initials, String);
check(userId, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
Users.update(userId, {
$set: {
'profile.initials': initials,
@ -1385,7 +1383,7 @@ if (Meteor.isServer) {
check(username, String);
check(boardId, String);
const inviter = Meteor.user();
const inviter = ReactiveCache.getCurrentUser();
const board = ReactiveCache.getBoard(boardId);
const allowInvite =
inviter &&
@ -1526,11 +1524,11 @@ if (Meteor.isServer) {
if (!Meteor.users.findOne(userId))
throw new Meteor.Error(404, 'User not found');
if (!Meteor.user().isAdmin)
if (!ReactiveCache.getCurrentUser().isAdmin)
throw new Meteor.Error(403, 'Permission denied');
ImpersonatedUsers.insert({
adminId: Meteor.user()._id,
adminId: ReactiveCache.getCurrentUser()._id,
userId: userId,
reason: 'clickedImpersonate',
});
@ -1546,7 +1544,7 @@ if (Meteor.isServer) {
setUsersTeamsTeamDisplayName(teamId, teamDisplayName) {
check(teamId, String);
check(teamDisplayName, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
Users.find({
teams: {
$elemMatch: { teamId: teamId },
@ -1571,7 +1569,7 @@ if (Meteor.isServer) {
setUsersOrgsOrgDisplayName(orgId, orgDisplayName) {
check(orgId, String);
check(orgDisplayName, String);
if (Meteor.user() && Meteor.user().isAdmin) {
if (ReactiveCache.getCurrentUser()?.isAdmin) {
Users.find({
orgs: {
$elemMatch: { orgId: orgId },