UNPKG

fabric8-planner

Version:
59 lines 2.28 kB
import { Injectable } from '@angular/core'; import { UserService as UserServiceClass } from 'ngx-login-client'; import { map, switchMap } from 'rxjs/operators'; import { SpaceQuery } from './space'; import { UserQuery } from './user'; var PermissionQuery = /** @class */ (function () { function PermissionQuery(userQuery, spaceQuery, userService) { this.userQuery = userQuery; this.spaceQuery = spaceQuery; this.userService = userService; } PermissionQuery.prototype.isAllowedToAdd = function () { var _this = this; return this.spaceQuery.getCurrentSpace .pipe(switchMap(function (space) { return _this.userService.loggedInUser.pipe(map(function (user) { return { spaceName: space.attributes.name, user: user }; })); }), switchMap(function (spaceAndUser) { return _this.userQuery.getCollaboratorIds.pipe(map(function (collaboratorIDs) { if (spaceAndUser.user.id) { if (collaboratorIDs.indexOf(spaceAndUser.user.id) >= 0) { return false; } else { return !(spaceAndUser.spaceName === 'Openshift_io'); } } })); })); }; PermissionQuery.prototype.isAllowedToDelete = function (workItem) { var _this = this; return this.spaceQuery.getCurrentSpace .pipe(switchMap(function (space) { return _this.userService.loggedInUser.pipe(map(function (user) { var spaceOwnerId = space.relationships['owned-by'].data.id; if (spaceOwnerId === user.id || workItem.creator === user.id) { return true; } else { return false; } })); })); }; PermissionQuery.decorators = [ { type: Injectable }, ]; /** @nocollapse */ PermissionQuery.ctorParameters = function () { return [ { type: UserQuery, }, { type: SpaceQuery, }, { type: UserServiceClass, }, ]; }; return PermissionQuery; }()); export { PermissionQuery }; //# sourceMappingURL=permission.model.js.map