From 801c95467384bfaf38ddbe1bb752af338bd83bf3 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 20 Jul 2021 09:58:10 -0400 Subject: [PATCH] hasPermission role utility (#5554) --- app/utils/role/index.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 app/utils/role/index.ts diff --git a/app/utils/role/index.ts b/app/utils/role/index.ts new file mode 100644 index 0000000000..b3beff765a --- /dev/null +++ b/app/utils/role/index.ts @@ -0,0 +1,14 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import type RoleModel from '@typings/database/models/servers/role'; + +export function hasPermission(roles: RoleModel[] | Role[], permission: string, defaultValue: boolean) { + const permissions = new Set(); + for (const role of roles) { + role.permissions.forEach(permissions.add, permissions); + } + + const exists = permissions.has(permission); + return defaultValue === true || exists; +}