unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
24 lines • 1.08 kB
JavaScript
import { FEATURE_FAVORITED } from '../../events/index.js';
import { RoleName } from '../../types/model.js';
import { ROOT_ROLE_TYPE } from '../../util/constants.js';
export const createGetReadOnlyUsers = (db) => async () => {
const result = await db('users')
.countDistinct('users.id as readOnlyCount')
.join('role_user', 'role_user.user_id', 'users.id')
.join('roles', 'roles.id', 'role_user.role_id')
.whereNull('users.deleted_at')
.where('users.is_system', false)
.where('users.is_service', false)
.where('roles.name', RoleName.VIEWER)
.where('roles.type', ROOT_ROLE_TYPE)
.whereNotExists(function () {
this.select('*')
.from('events')
.whereRaw('events.created_by_user_id = users.id')
.whereNot('events.type', FEATURE_FAVORITED);
})
.first();
return Number(result?.readOnlyCount ?? 0);
};
export const createFakeGetReadOnlyUsers = (readOnlyUsers = 0) => () => Promise.resolve(readOnlyUsers);
//# sourceMappingURL=getReadOnlyUsers.js.map