unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
31 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrivateProjectChecker = void 0;
const privateProjectStore_1 = require("./privateProjectStore");
class PrivateProjectChecker {
constructor({ privateProjectStore }, { isEnterprise }) {
this.privateProjectStore = privateProjectStore;
this.isEnterprise = isEnterprise;
}
async getUserAccessibleProjects(userId) {
return this.isEnterprise
? this.privateProjectStore.getUserAccessibleProjects(userId)
: Promise.resolve(privateProjectStore_1.ALL_PROJECT_ACCESS);
}
async filterUserAccessibleProjects(userId, projects) {
if (!this.isEnterprise) {
return projects;
}
const accessibleProjects = await this.privateProjectStore.getUserAccessibleProjects(userId);
if (accessibleProjects.mode === 'all')
return projects;
return projects.filter((project) => accessibleProjects.projects.includes(project));
}
async hasAccessToProject(userId, projectId) {
const projectAccess = await this.getUserAccessibleProjects(userId);
return (projectAccess.mode === 'all' ||
projectAccess.projects.includes(projectId));
}
}
exports.PrivateProjectChecker = PrivateProjectChecker;
//# sourceMappingURL=privateProjectChecker.js.map