unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
27 lines • 1.17 kB
JavaScript
import { ALL_PROJECT_ACCESS, } from './privateProjectStore.js';
export class PrivateProjectChecker {
constructor({ privateProjectStore }, { isEnterprise }) {
this.privateProjectStore = privateProjectStore;
this.isEnterprise = isEnterprise;
}
async getUserAccessibleProjects(userId) {
return this.isEnterprise
? this.privateProjectStore.getUserAccessibleProjects(userId)
: Promise.resolve(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));
}
}
//# sourceMappingURL=privateProjectChecker.js.map