Skip to content

Commit f2ef91d

Browse files
authored
Merge branch 'develop' into enterprise-license-tags
2 parents 1062848 + a77d5b0 commit f2ef91d

File tree

31 files changed

+120
-23
lines changed

31 files changed

+120
-23
lines changed

app/api/server/lib/users.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export async function findUsersToAutocomplete({ uid, selector }) {
1313
fields: {
1414
name: 1,
1515
username: 1,
16+
nickname: 1,
1617
status: 1,
1718
avatarETag: 1,
1819
},

app/api/server/v1/users.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ API.v1.addRoute('users.create', { authRequired: true }, {
3131
username: String,
3232
active: Match.Maybe(Boolean),
3333
bio: Match.Maybe(String),
34+
nickname: Match.Maybe(String),
3435
statusText: Match.Maybe(String),
3536
roles: Match.Maybe(Array),
3637
joinDefaultChannels: Match.Maybe(Boolean),
@@ -436,6 +437,7 @@ API.v1.addRoute('users.update', { authRequired: true, twoFactorRequired: true },
436437
password: Match.Maybe(String),
437438
username: Match.Maybe(String),
438439
bio: Match.Maybe(String),
440+
nickname: Match.Maybe(String),
439441
statusText: Match.Maybe(String),
440442
active: Match.Maybe(Boolean),
441443
roles: Match.Maybe(Array),
@@ -473,6 +475,7 @@ API.v1.addRoute('users.updateOwnBasicInfo', { authRequired: true }, {
473475
email: Match.Maybe(String),
474476
name: Match.Maybe(String),
475477
username: Match.Maybe(String),
478+
nickname: Match.Maybe(String),
476479
statusText: Match.Maybe(String),
477480
currentPassword: Match.Maybe(String),
478481
newPassword: Match.Maybe(String),
@@ -484,6 +487,7 @@ API.v1.addRoute('users.updateOwnBasicInfo', { authRequired: true }, {
484487
email: this.bodyParams.data.email,
485488
realname: this.bodyParams.data.name,
486489
username: this.bodyParams.data.username,
490+
nickname: this.bodyParams.data.nickname,
487491
statusText: this.bodyParams.data.statusText,
488492
newPassword: this.bodyParams.data.newPassword,
489493
typedPassword: this.bodyParams.data.currentPassword,

app/apps/client/gameCenter/invitePlayers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ Template.InvitePlayers.helpers({
5454
roomModifier() {
5555
return (filter, text = '') => {
5656
const f = filter.get();
57-
return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `<strong>${ part }</strong>`) }`;
57+
return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `<strong>${ part }</strong>`) }`;
5858
};
5959
},
6060
userModifier() {
6161
return (filter, text = '') => {
6262
const f = filter.get();
63-
return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `<strong>${ part }</strong>`) }`;
63+
return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `<strong>${ part }</strong>`) }`;
6464
};
6565
},
6666
nameSuggestion() {

app/discussion/client/views/creationDialog/CreateDiscussion.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ Template.CreateDiscussion.helpers({
7272
roomModifier() {
7373
return (filter, text = '') => {
7474
const f = filter.get();
75-
return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `<strong>${ part }</strong>`) }`;
75+
return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `<strong>${ part }</strong>`) }`;
7676
};
7777
},
7878
userModifier() {
7979
return (filter, text = '') => {
8080
const f = filter.get();
81-
return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `<strong>${ part }</strong>`) }`;
81+
return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `<strong>${ part }</strong>`) }`;
8282
};
8383
},
8484
nameSuggestion() {

app/lib/server/functions/getFullUserData.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const logger = new Logger('getFullUserData');
1010
const defaultFields = {
1111
name: 1,
1212
username: 1,
13+
nickname: 1,
1314
status: 1,
1415
utcOffset: 1,
1516
type: 1,

app/lib/server/functions/saveUser.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,23 @@ const handleBio = (updateUser, bio) => {
215215
}
216216
};
217217

218+
const handleNickname = (updateUser, nickname) => {
219+
if (nickname) {
220+
if (nickname.trim()) {
221+
if (typeof nickname !== 'string' || nickname.length > 120) {
222+
throw new Meteor.Error('error-invalid-field', 'nickname', {
223+
method: 'saveUserProfile',
224+
});
225+
}
226+
updateUser.$set = updateUser.$set || {};
227+
updateUser.$set.nickname = nickname;
228+
} else {
229+
updateUser.$unset = updateUser.$unset || {};
230+
updateUser.$unset.nickname = 1;
231+
}
232+
}
233+
};
234+
218235
export const saveUser = function(userId, userData) {
219236
validateUserData(userId, userData);
220237
let sendPassword = false;
@@ -261,6 +278,7 @@ export const saveUser = function(userId, userData) {
261278
}
262279

263280
handleBio(updateUser, userData.bio);
281+
handleNickname(updateUser, userData.nickname);
264282

265283
Meteor.users.update({ _id }, updateUser);
266284

@@ -320,6 +338,7 @@ export const saveUser = function(userId, userData) {
320338
};
321339

322340
handleBio(updateUser, userData.bio);
341+
handleNickname(updateUser, userData.nickname);
323342

324343
if (userData.roles) {
325344
updateUser.$set.roles = userData.roles;

app/lib/server/startup/settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ settings.addGroup('Accounts', function() {
9797
type: 'boolean',
9898
public: true,
9999
});
100-
this.add('Accounts_SearchFields', 'username, name, bio', {
100+
this.add('Accounts_SearchFields', 'username, name, bio, nickname', {
101101
type: 'string',
102102
});
103103
this.add('Accounts_Directory_DefaultView', 'channels', {

app/models/server/models/Users.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ export class Users extends Base {
3030

3131
this.tryEnsureIndex({ roles: 1 }, { sparse: 1 });
3232
this.tryEnsureIndex({ name: 1 });
33-
this.tryEnsureIndex({ bio: 1 });
33+
this.tryEnsureIndex({ bio: 1 }, { sparse: 1 });
34+
this.tryEnsureIndex({ nickname: 1 }, { sparse: 1 });
3435
this.tryEnsureIndex({ createdAt: 1 });
3536
this.tryEnsureIndex({ lastLogin: 1 });
3637
this.tryEnsureIndex({ status: 1 });
@@ -1151,6 +1152,21 @@ export class Users extends Base {
11511152
return this.update(_id, update);
11521153
}
11531154

1155+
setNickname(_id, nickname = '') {
1156+
const update = {
1157+
...nickname.trim() ? {
1158+
$set: {
1159+
nickname,
1160+
},
1161+
} : {
1162+
$unset: {
1163+
nickname: 1,
1164+
},
1165+
},
1166+
};
1167+
return this.update(_id, update);
1168+
}
1169+
11541170
clearSettings(_id) {
11551171
const update = {
11561172
$set: {

app/models/server/raw/Users.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ export class UsersRaw extends BaseRaw {
126126
username: termRegex,
127127
}, {
128128
name: termRegex,
129+
}, {
130+
nickname: termRegex,
129131
}],
130132
active: true,
131133
type: {

app/theme/client/imports/components/messages.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
.message-actions {
66
position: absolute;
7+
z-index: 2;
78
top: -18px;
89
right: 0.4rem;
910

0 commit comments

Comments
 (0)