summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webapp/stores/team_store.jsx14
-rw-r--r--webapp/utils/utils.jsx6
2 files changed, 16 insertions, 4 deletions
diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx
index bb0926ec5..b2cb3ad26 100644
--- a/webapp/stores/team_store.jsx
+++ b/webapp/stores/team_store.jsx
@@ -281,6 +281,20 @@ class TeamStoreClass extends EventEmitter {
return this.teamListings;
}
+ isTeamAdminForAnyTeam() {
+ if (!Utils) {
+ Utils = require('utils/utils.jsx'); //eslint-disable-line global-require
+ }
+
+ for (const teamMember of this.getMyTeamMembers()) {
+ if (Utils.isAdmin(teamMember.roles)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
isTeamAdminForCurrentTeam() {
return this.isTeamAdmin(UserStore.getCurrentId(), this.getCurrentId());
}
diff --git a/webapp/utils/utils.jsx b/webapp/utils/utils.jsx
index a96c791c7..7f9af571f 100644
--- a/webapp/utils/utils.jsx
+++ b/webapp/utils/utils.jsx
@@ -1203,10 +1203,8 @@ export function canCreateCustomEmoji(user) {
return false;
} else if (window.mm_config.RestrictCustomEmojiCreation === 'admin') {
// check whether the user is an admin on any of their teams
- for (const member of TeamStore.getTeamMembers()) {
- if (isAdmin(member.roles)) {
- return true;
- }
+ if (TeamStore.isTeamAdminForAnyTeam()) {
+ return true;
}
return false;