Ваша проблема в том, что вы сравниваете ссылки на массивы, что, вероятно, не то, что вы хотите.
Вы должны проверить, существуют ли все expectedPermissions
в permissions
. Это может быть достигнуто путем комбинирования функций every
и includes
:
if (!this.auth.isAuthenticated() || !expectedPermission.every(expectedPermission => permissions.includes(expectedPermission))) {
//no permission
}
Every зацикливается в массиве expectedPermissions
и возвращает true, только если данный предикат имеет значение true для каждого элемента. Мы используем предикат для проверки того, включен ли элемент в массив разрешений.