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; +}