diff --git a/src/lib/middleware/api-token-middleware.test.ts b/src/lib/middleware/api-token-middleware.test.ts index 1ee74ac094..bc25e35680 100644 --- a/src/lib/middleware/api-token-middleware.test.ts +++ b/src/lib/middleware/api-token-middleware.test.ts @@ -4,7 +4,7 @@ import sinon from 'sinon'; import apiTokenMiddleware from './api-token-middleware'; import getLogger from '../../test/fixtures/no-logger'; -import { CLIENT } from '../permissions'; +import { CLIENT } from '../types/permissions'; import { createTestConfig } from '../../test/config/test-config'; import ApiUser from '../types/api-user'; diff --git a/src/lib/middleware/no-authentication.js b/src/lib/middleware/no-authentication.js index a08b013101..03d16916a3 100644 --- a/src/lib/middleware/no-authentication.js +++ b/src/lib/middleware/no-authentication.js @@ -1,6 +1,6 @@ 'use strict'; -const { ADMIN } = require('../permissions'); +const { ADMIN } = require('../types/permissions'); const ApiUser = require('../types/api-user'); function noneAuthentication(basePath = '', app) { diff --git a/src/lib/middleware/rbac-middleware.test.ts b/src/lib/middleware/rbac-middleware.test.ts index 21a0419f62..74a82706b3 100644 --- a/src/lib/middleware/rbac-middleware.test.ts +++ b/src/lib/middleware/rbac-middleware.test.ts @@ -5,7 +5,7 @@ import sinon from 'sinon'; import rbacMiddleware from './rbac-middleware'; import ffStore from '../../test/fixtures/fake-feature-toggle-store'; import User from '../types/user'; -import perms from '../permissions'; +import * as perms from '../types/permissions'; import { IUnleashConfig } from '../types/option'; import { createTestConfig } from '../../test/config/test-config'; import ApiUser from '../types/api-user'; diff --git a/src/lib/middleware/rbac-middleware.ts b/src/lib/middleware/rbac-middleware.ts index 7ec8df7d6c..c04a24e255 100644 --- a/src/lib/middleware/rbac-middleware.ts +++ b/src/lib/middleware/rbac-middleware.ts @@ -4,7 +4,7 @@ import { UPDATE_FEATURE, DELETE_FEATURE, ADMIN, -} from '../permissions'; +} from '../types/permissions'; import ApiUser from '../types/api-user'; import { IUnleashConfig } from '../types/option'; import { IUnleashStores } from '../types/stores'; diff --git a/src/lib/permissions.js b/src/lib/permissions.js deleted file mode 100644 index 23d497caf5..0000000000 --- a/src/lib/permissions.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -const ADMIN = 'ADMIN'; -const CLIENT = 'CLIENT'; -const CREATE_FEATURE = 'CREATE_FEATURE'; -const UPDATE_FEATURE = 'UPDATE_FEATURE'; -const DELETE_FEATURE = 'DELETE_FEATURE'; -const CREATE_STRATEGY = 'CREATE_STRATEGY'; -const UPDATE_STRATEGY = 'UPDATE_STRATEGY'; -const DELETE_STRATEGY = 'DELETE_STRATEGY'; -const UPDATE_APPLICATION = 'UPDATE_APPLICATION'; -const CREATE_CONTEXT_FIELD = 'CREATE_CONTEXT_FIELD'; -const UPDATE_CONTEXT_FIELD = 'UPDATE_CONTEXT_FIELD'; -const DELETE_CONTEXT_FIELD = 'DELETE_CONTEXT_FIELD'; -const CREATE_PROJECT = 'CREATE_PROJECT'; -const UPDATE_PROJECT = 'UPDATE_PROJECT'; -const DELETE_PROJECT = 'DELETE_PROJECT'; -const CREATE_ADDON = 'CREATE_ADDON'; -const UPDATE_ADDON = 'UPDATE_ADDON'; -const DELETE_ADDON = 'DELETE_ADDON'; -const READ_ROLE = 'READ_ROLE'; -const UPDATE_ROLE = 'UPDATE_ROLE'; -const UPDATE_API_TOKEN = 'UPDATE_API_TOKEN'; -const CREATE_API_TOKEN = 'CREATE_API_TOKEN'; -const DELETE_API_TOKEN = 'DELETE_API_TOKEN'; - -module.exports = { - ADMIN, - CLIENT, - CREATE_FEATURE, - UPDATE_FEATURE, - DELETE_FEATURE, - CREATE_STRATEGY, - UPDATE_STRATEGY, - DELETE_STRATEGY, - UPDATE_APPLICATION, - CREATE_CONTEXT_FIELD, - UPDATE_CONTEXT_FIELD, - DELETE_CONTEXT_FIELD, - CREATE_PROJECT, - UPDATE_PROJECT, - DELETE_PROJECT, - CREATE_ADDON, - DELETE_ADDON, - UPDATE_ADDON, - READ_ROLE, - UPDATE_ROLE, - CREATE_API_TOKEN, - UPDATE_API_TOKEN, - DELETE_API_TOKEN, -}; diff --git a/src/lib/routes/admin-api/addon.ts b/src/lib/routes/admin-api/addon.ts index 26b404349d..b5bcc5b5dd 100644 --- a/src/lib/routes/admin-api/addon.ts +++ b/src/lib/routes/admin-api/addon.ts @@ -9,7 +9,7 @@ import AddonService from '../../services/addon-service'; import extractUser from '../../extract-user'; import { handleErrors } from './util'; -import { CREATE_ADDON, UPDATE_ADDON, DELETE_ADDON } from '../../permissions'; +import { CREATE_ADDON, UPDATE_ADDON, DELETE_ADDON } from '../../types/permissions'; class AddonController extends Controller { private logger: Logger; diff --git a/src/lib/routes/admin-api/api-token-controller.ts b/src/lib/routes/admin-api/api-token-controller.ts index a522be9dc3..dc168d25ac 100644 --- a/src/lib/routes/admin-api/api-token-controller.ts +++ b/src/lib/routes/admin-api/api-token-controller.ts @@ -6,7 +6,7 @@ import { CREATE_API_TOKEN, DELETE_API_TOKEN, UPDATE_API_TOKEN, -} from '../../permissions'; +} from '../../types/permissions'; import { ApiTokenService } from '../../services/api-token-service'; import { Logger } from '../../logger'; import { ApiTokenType } from '../../db/api-token-store'; diff --git a/src/lib/routes/admin-api/context.ts b/src/lib/routes/admin-api/context.ts index 61ea00382a..95f1a91abd 100644 --- a/src/lib/routes/admin-api/context.ts +++ b/src/lib/routes/admin-api/context.ts @@ -9,7 +9,7 @@ import { CREATE_CONTEXT_FIELD, UPDATE_CONTEXT_FIELD, DELETE_CONTEXT_FIELD, -} from '../../permissions'; +} from '../../types/permissions'; import { IUnleashConfig } from '../../types/option'; import { IUnleashServices } from '../../types/services'; import ContextService from '../../services/context-service'; diff --git a/src/lib/routes/admin-api/email.ts b/src/lib/routes/admin-api/email.ts index e3bb07ffdb..811b9162e5 100644 --- a/src/lib/routes/admin-api/email.ts +++ b/src/lib/routes/admin-api/email.ts @@ -1,4 +1,4 @@ -import { ADMIN } from '../../permissions'; +import { ADMIN } from '../../types/permissions'; import { TemplateFormat } from '../../services/email-service'; import { handleErrors } from './util'; import { IUnleashConfig } from '../../types/option'; diff --git a/src/lib/routes/admin-api/feature.ts b/src/lib/routes/admin-api/feature.ts index 96ff3ad9c3..a9f30838de 100644 --- a/src/lib/routes/admin-api/feature.ts +++ b/src/lib/routes/admin-api/feature.ts @@ -8,7 +8,7 @@ import { UPDATE_FEATURE, DELETE_FEATURE, CREATE_FEATURE, -} from '../../permissions'; +} from '../../types/permissions'; import { IUnleashConfig } from '../../types/option'; import { IUnleashServices } from '../../types/services'; import { Logger } from '../../logger'; diff --git a/src/lib/routes/admin-api/metrics.ts b/src/lib/routes/admin-api/metrics.ts index f8c5761c1e..31e4bb5f16 100644 --- a/src/lib/routes/admin-api/metrics.ts +++ b/src/lib/routes/admin-api/metrics.ts @@ -1,7 +1,7 @@ import { Request, Response } from 'express'; import Controller from '../controller'; import { handleErrors } from './util'; -import { UPDATE_APPLICATION } from '../../permissions'; +import { UPDATE_APPLICATION } from '../../types/permissions'; import { IUnleashConfig } from '../../types/option'; import { IUnleashServices } from '../../types/services'; import { Logger } from '../../logger'; diff --git a/src/lib/routes/admin-api/state.ts b/src/lib/routes/admin-api/state.ts index 00bad93312..6e53e243ed 100644 --- a/src/lib/routes/admin-api/state.ts +++ b/src/lib/routes/admin-api/state.ts @@ -6,7 +6,7 @@ import moment from 'moment'; import multer from 'multer'; import { Request, Response } from 'express'; import Controller from '../controller'; -import { ADMIN } from '../../permissions'; +import { ADMIN } from '../../types/permissions'; import extractUser from '../../extract-user'; import { handleErrors } from './util'; import { IUnleashConfig } from '../../types/option'; diff --git a/src/lib/routes/admin-api/tag-type.ts b/src/lib/routes/admin-api/tag-type.ts index c4cc8fcf72..c7ab855404 100644 --- a/src/lib/routes/admin-api/tag-type.ts +++ b/src/lib/routes/admin-api/tag-type.ts @@ -3,7 +3,7 @@ import { Request, Response } from 'express'; import Controller from '../controller'; -import { UPDATE_FEATURE } from '../../permissions'; +import { UPDATE_FEATURE } from '../../types/permissions'; import { handleErrors } from './util'; import extractUsername from '../../extract-user'; import { IUnleashConfig } from '../../types/option'; diff --git a/src/lib/routes/admin-api/tag.ts b/src/lib/routes/admin-api/tag.ts index 4a2c64d76e..1d0195c25c 100644 --- a/src/lib/routes/admin-api/tag.ts +++ b/src/lib/routes/admin-api/tag.ts @@ -8,7 +8,7 @@ import { Logger } from '../../logger'; import Controller from '../controller'; -import { UPDATE_FEATURE } from '../../permissions'; +import { UPDATE_FEATURE } from '../../types/permissions'; import { handleErrors } from './util'; import extractUsername from '../../extract-user'; diff --git a/src/lib/routes/admin-api/user-admin.ts b/src/lib/routes/admin-api/user-admin.ts index 50a306d32a..d4d2297a12 100644 --- a/src/lib/routes/admin-api/user-admin.ts +++ b/src/lib/routes/admin-api/user-admin.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; import Controller from '../controller'; -import { ADMIN } from '../../permissions'; +import { ADMIN } from '../../types/permissions'; import UserService from '../../services/user-service'; import { AccessService } from '../../services/access-service'; import { Logger } from '../../logger'; diff --git a/src/lib/server-impl.ts b/src/lib/server-impl.ts index e9ee44464a..3ae964b483 100644 --- a/src/lib/server-impl.ts +++ b/src/lib/server-impl.ts @@ -12,7 +12,7 @@ import { createServices } from './services'; import { createConfig } from './create-config'; import User from './types/user'; -import permissions from './permissions'; +import * as permissions from './types/permissions'; import AuthenticationRequired from './types/authentication-required'; import * as eventType from './types/events'; import { addEventHook } from './event-hook'; diff --git a/src/lib/services/access-service.ts b/src/lib/services/access-service.ts index cb4be95744..be5db9ac09 100644 --- a/src/lib/services/access-service.ts +++ b/src/lib/services/access-service.ts @@ -4,7 +4,7 @@ import { IUserPermission, IUserRole, } from '../db/access-store'; -import permissions from '../permissions'; +import * as permissions from '../types/permissions'; import User from '../types/user'; export const ALL_PROJECTS = '*'; diff --git a/src/lib/services/api-token-service.ts b/src/lib/services/api-token-service.ts index 0fbd2108e7..33e08290fa 100644 --- a/src/lib/services/api-token-service.ts +++ b/src/lib/services/api-token-service.ts @@ -1,7 +1,7 @@ import crypto from 'crypto'; import { ApiTokenStore, IApiToken, ApiTokenType } from '../db/api-token-store'; import { Logger } from '../logger'; -import { ADMIN, CLIENT } from '../permissions'; +import { ADMIN, CLIENT } from '../types/permissions'; import { IUnleashStores } from '../types/stores'; import { IUnleashConfig } from '../types/option'; import ApiUser from '../types/api-user'; diff --git a/src/lib/types/api-user.ts b/src/lib/types/api-user.ts index 4957cb30ee..b115d83a39 100644 --- a/src/lib/types/api-user.ts +++ b/src/lib/types/api-user.ts @@ -1,4 +1,4 @@ -import { CLIENT } from '../permissions'; +import { CLIENT } from './permissions'; interface IApiUserData { username: string; diff --git a/src/lib/types/permissions.ts b/src/lib/types/permissions.ts new file mode 100644 index 0000000000..7e8616de29 --- /dev/null +++ b/src/lib/types/permissions.ts @@ -0,0 +1,23 @@ +export const ADMIN = 'ADMIN'; +export const CLIENT = 'CLIENT'; +export const CREATE_FEATURE = 'CREATE_FEATURE'; +export const UPDATE_FEATURE = 'UPDATE_FEATURE'; +export const DELETE_FEATURE = 'DELETE_FEATURE'; +export const CREATE_STRATEGY = 'CREATE_STRATEGY'; +export const UPDATE_STRATEGY = 'UPDATE_STRATEGY'; +export const DELETE_STRATEGY = 'DELETE_STRATEGY'; +export const UPDATE_APPLICATION = 'UPDATE_APPLICATION'; +export const CREATE_CONTEXT_FIELD = 'CREATE_CONTEXT_FIELD'; +export const UPDATE_CONTEXT_FIELD = 'UPDATE_CONTEXT_FIELD'; +export const DELETE_CONTEXT_FIELD = 'DELETE_CONTEXT_FIELD'; +export const CREATE_PROJECT = 'CREATE_PROJECT'; +export const UPDATE_PROJECT = 'UPDATE_PROJECT'; +export const DELETE_PROJECT = 'DELETE_PROJECT'; +export const CREATE_ADDON = 'CREATE_ADDON'; +export const UPDATE_ADDON = 'UPDATE_ADDON'; +export const DELETE_ADDON = 'DELETE_ADDON'; +export const READ_ROLE = 'READ_ROLE'; +export const UPDATE_ROLE = 'UPDATE_ROLE'; +export const UPDATE_API_TOKEN = 'UPDATE_API_TOKEN'; +export const CREATE_API_TOKEN = 'CREATE_API_TOKEN'; +export const DELETE_API_TOKEN = 'DELETE_API_TOKEN'; diff --git a/src/test/e2e/services/access-service.e2e.test.js b/src/test/e2e/services/access-service.e2e.test.js index e9f180ab89..ef73eebbc5 100644 --- a/src/test/e2e/services/access-service.e2e.test.js +++ b/src/test/e2e/services/access-service.e2e.test.js @@ -8,7 +8,7 @@ const { RoleName, ALL_PROJECTS, } = require('../../../lib/services/access-service'); -const permissions = require('../../../lib/permissions'); +const permissions = require('../../../lib/types/permissions'); let db; let stores; diff --git a/src/test/e2e/services/project-service.e2e.test.js b/src/test/e2e/services/project-service.e2e.test.js index 1de056cecc..3a21983518 100644 --- a/src/test/e2e/services/project-service.e2e.test.js +++ b/src/test/e2e/services/project-service.e2e.test.js @@ -6,7 +6,7 @@ const { AccessService, RoleName, } = require('../../../lib/services/access-service'); -const { UPDATE_PROJECT } = require('../../../lib/permissions'); +const { UPDATE_PROJECT } = require('../../../lib/types/permissions'); const NotFoundError = require('../../../lib/error/notfound-error'); let stores;