chore: Rename for consistency
This commit is contained in:
@@ -38,8 +38,8 @@ const StepTypes = {
|
||||
const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
|
||||
|
||||
const activeUsersLimit = useSelector(selectors.selectActiveUsersLimit);
|
||||
const activeUsersTotal = useSelector(selectors.selectActiveUsersTotal);
|
||||
const activeUserLimit = useSelector(selectors.selectActiveUserLimit);
|
||||
const activeUserTotal = useSelector(selectors.selectActiveUserTotal);
|
||||
const user = useSelector((state) => selectUserById(state, userId));
|
||||
const isCurrentUser = useSelector((state) => user.id === selectors.selectCurrentUserId(state));
|
||||
|
||||
@@ -237,8 +237,8 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
<Menu.Item
|
||||
disabled={
|
||||
user.isDeactivated &&
|
||||
activeUsersLimit !== null &&
|
||||
activeUsersTotal >= activeUsersLimit
|
||||
activeUserLimit !== null &&
|
||||
activeUserTotal >= activeUserLimit
|
||||
}
|
||||
className={styles.menuItem}
|
||||
onClick={user.isDeactivated ? handleActivateClick : handleDeactivateClick}
|
||||
|
||||
@@ -17,8 +17,8 @@ import AddStep from './AddStep';
|
||||
import styles from './UsersPane.module.scss';
|
||||
|
||||
const UsersPane = React.memo(() => {
|
||||
const activeUsersTotal = useSelector(selectors.selectActiveUsersTotal);
|
||||
const activeUsersLimit = useSelector(selectors.selectActiveUsersLimit);
|
||||
const activeUserTotal = useSelector(selectors.selectActiveUserTotal);
|
||||
const activeUserLimit = useSelector(selectors.selectActiveUserLimit);
|
||||
const users = useSelector(selectors.selectUsers);
|
||||
|
||||
const canAdd = useSelector((state) => {
|
||||
@@ -106,13 +106,13 @@ const UsersPane = React.memo(() => {
|
||||
<AddPopup>
|
||||
<Button
|
||||
positive
|
||||
disabled={activeUsersLimit !== null && activeUsersTotal >= activeUsersLimit}
|
||||
disabled={activeUserLimit !== null && activeUserTotal >= activeUserLimit}
|
||||
className={styles.addButton}
|
||||
>
|
||||
{t('action.addUser')}
|
||||
{activeUsersLimit !== null && (
|
||||
{activeUserLimit !== null && (
|
||||
<span className={styles.addButtonCounter}>
|
||||
{activeUsersTotal}/{activeUsersLimit}
|
||||
{activeUserTotal}/{activeUserLimit}
|
||||
</span>
|
||||
)}
|
||||
</Button>
|
||||
|
||||
@@ -64,10 +64,10 @@ const createMessage = (error) => {
|
||||
type: 'error',
|
||||
content: 'common.usernameAlreadyInUse',
|
||||
};
|
||||
case 'Active users limit reached':
|
||||
case 'Active user limit reached':
|
||||
return {
|
||||
type: 'error',
|
||||
content: 'common.activeUsersLimitReached',
|
||||
content: 'common.activeUserLimitReached',
|
||||
};
|
||||
case 'Failed to fetch':
|
||||
return {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'تم الوصول إلى حد المستخدمين النشطين',
|
||||
activeUserLimitReached: 'تم الوصول إلى حد المستخدمين النشطين',
|
||||
adminLoginRequiredToInitializeInstance: 'مطلوب تسجيل دخول المدير لتهيئة المثيل',
|
||||
emailAlreadyInUse: 'البريد الإلكتروني مستخدم بالفعل',
|
||||
emailOrUsername: 'البريد الإلكتروني أو اسم المستخدم',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Достигнат е лимитът на активни потребители',
|
||||
activeUserLimitReached: 'Достигнат е лимитът на активни потребители',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Необходимо е влизане на администратор за инициализиране на инстанцията',
|
||||
emailAlreadyInUse: 'Имейлът вече се използва',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: "S'ha assolit el límit d'usuaris actius",
|
||||
activeUserLimitReached: "S'ha assolit el límit d'usuaris actius",
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
"Es requereix inici de sessió d'administrador per inicialitzar la instància",
|
||||
emailAlreadyInUse: 'Correu electrònic ja en ús',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Dosažený limit aktivních uživatelů',
|
||||
activeUserLimitReached: 'Dosažený limit aktivních uživatelů',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'K inicializaci instance je nutné přihlášení správce.',
|
||||
emailAlreadyInUse: 'E-mail se již používá',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Grænsen for aktive brugere er nået',
|
||||
activeUserLimitReached: 'Grænsen for aktive brugere er nået',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Administrator login påkrævet for at initialisere instans',
|
||||
emailAlreadyInUse: 'E-mail allerede i brug',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Maximale Anzahl aktiver Benutzer erreicht',
|
||||
activeUserLimitReached: 'Maximale Anzahl aktiver Benutzer erreicht',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Admin-Anmeldung erforderlich zur Initialisierung der Instanz',
|
||||
emailAlreadyInUse: 'E-mail Adresse wird bereits benutzt',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Έχει επιτευχθεί το όριο ενεργών χρηστών',
|
||||
activeUserLimitReached: 'Έχει επιτευχθεί το όριο ενεργών χρηστών',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Απαιτείται σύνδεση διαχειριστή για την αρχικοποίηση της εφαρμογής',
|
||||
emailAlreadyInUse: 'Το e-mail χρησιμοποιείται ήδη',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Active users limit reached',
|
||||
activeUserLimitReached: 'Active user limit reached',
|
||||
adminLoginRequiredToInitializeInstance: 'Admin login required to initialize instance',
|
||||
emailAlreadyInUse: 'E-mail already in use',
|
||||
emailOrUsername: 'E-mail or username',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Active users limit reached',
|
||||
activeUserLimitReached: 'Active user limit reached',
|
||||
adminLoginRequiredToInitializeInstance: 'Admin login required to initialize instance',
|
||||
emailAlreadyInUse: 'E-mail already in use',
|
||||
emailOrUsername: 'E-mail or username',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Se ha alcanzado el límite de usuarios activos',
|
||||
activeUserLimitReached: 'Se ha alcanzado el límite de usuarios activos',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Se requiere inicio de sesión de administrador para inicializar la instancia',
|
||||
emailAlreadyInUse: 'Correo electrónico ya en uso',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Aktiivsete kasutajate limiit on täis',
|
||||
activeUserLimitReached: 'Aktiivsete kasutajate limiit on täis',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Administraatori sisselogimine on vajalik rakenduse käivitamiseks',
|
||||
emailAlreadyInUse: 'E-post on juba kasutusel',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'حد کاربران فعال به پایان رسیده است',
|
||||
activeUserLimitReached: 'حد کاربران فعال به پایان رسیده است',
|
||||
adminLoginRequiredToInitializeInstance: 'ورود مدیر برای راهاندازی نمونه مورد نیاز است',
|
||||
emailAlreadyInUse: 'ایمیل قبلا استفاده شده است',
|
||||
emailOrUsername: 'ایمیل یا نام کاربری',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Aktiivisten käyttäjien raja saavutettu',
|
||||
activeUserLimitReached: 'Aktiivisten käyttäjien raja saavutettu',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Järjestelmänvalvojan kirjautuminen vaaditaan instanssin alustamiseksi',
|
||||
emailAlreadyInUse: 'Sähköposti on jo käytössä',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'La limite d’utilisateurs actifs a été atteinte',
|
||||
activeUserLimitReached: 'La limite d’utilisateurs actifs a été atteinte',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
"Connexion administrateur requise pour initialiser l'instance",
|
||||
emailAlreadyInUse: 'E-mail déjà utilisé',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Aktív felhasználók korlátja elérve',
|
||||
activeUserLimitReached: 'Aktív felhasználók korlátja elérve',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Rendszergazdai bejelentkezés szükséges a példány inicializálásához',
|
||||
emailAlreadyInUse: 'Az e-mail cím már használatban van',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Batas pengguna aktif tercapai',
|
||||
activeUserLimitReached: 'Batas pengguna aktif tercapai',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Login admin diperlukan untuk menginisialisasi instance',
|
||||
emailAlreadyInUse: 'E-mail telah digunakan',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limite utenti attivi raggiunto',
|
||||
activeUserLimitReached: 'Limite utenti attivi raggiunto',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
"Login amministratore richiesto per inizializzare l'istanza",
|
||||
emailAlreadyInUse: 'E-mail già in uso',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'アクティブユーザーの上限に達しました',
|
||||
activeUserLimitReached: 'アクティブユーザーの上限に達しました',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'インスタンスを初期化するには管理者ログインが必要です',
|
||||
emailAlreadyInUse: 'Eメールは既に使われています',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: '활성 사용자 한도에 도달했습니다',
|
||||
activeUserLimitReached: '활성 사용자 한도에 도달했습니다',
|
||||
adminLoginRequiredToInitializeInstance: '인스턴스 초기화를 위해 관리자 로그인이 필요합니다',
|
||||
emailAlreadyInUse: '이미 사용 중인 이메일',
|
||||
emailOrUsername: '이메일 또는 사용자 이름',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limiet voor actieve gebruikers bereikt',
|
||||
activeUserLimitReached: 'Limiet voor actieve gebruikers bereikt',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Beheerder login vereist om instantie te initialiseren',
|
||||
emailAlreadyInUse: 'E-mail is al in gebruik',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Osiągnięto limit aktywnych użytkowników',
|
||||
activeUserLimitReached: 'Osiągnięto limit aktywnych użytkowników',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Wymagane logowanie administratora do inicjalizacji instancji',
|
||||
emailAlreadyInUse: 'E-mail jest już używany',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limite de usuários ativos atingido',
|
||||
activeUserLimitReached: 'Limite de usuários ativos atingido',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Login de administrador necessário para inicializar a instância',
|
||||
emailAlreadyInUse: 'E-mail já está em uso',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limite de utilizadores activos atingido',
|
||||
activeUserLimitReached: 'Limite de utilizadores activos atingido',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Início de sessão de administrador necessário para inicializar a instância',
|
||||
emailAlreadyInUse: 'E-mail já está em uso',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limita utilizatorilor activi a fost atinsă',
|
||||
activeUserLimitReached: 'Limita utilizatorilor activi a fost atinsă',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Este necesară autentificarea administratorului pentru a inițializa instanța',
|
||||
emailAlreadyInUse: 'E-mail deja utilizat',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Достигнут лимит активных пользователей',
|
||||
activeUserLimitReached: 'Достигнут лимит активных пользователей',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Требуется вход администратора для инициализации экземпляра',
|
||||
emailAlreadyInUse: 'E-mail уже занят',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Limit aktívnych používateľov bol dosiahnutý',
|
||||
activeUserLimitReached: 'Limit aktívnych používateľov bol dosiahnutý',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Na inicializáciu inštancie je potrebné prihlásenie správcu',
|
||||
emailAlreadyInUse: 'E-mail je už použitý',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Достигнут је лимит активних корисника',
|
||||
activeUserLimitReached: 'Достигнут је лимит активних корисника',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Потребна је администраторска пријава за иницијализацију инстанце',
|
||||
emailAlreadyInUse: 'Е-пошта је већ у употреби',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Dostignut je limit aktivnih korisnika',
|
||||
activeUserLimitReached: 'Dostignut je limit aktivnih korisnika',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Potrebna je administratorska prijava za inicijalizaciju instance',
|
||||
emailAlreadyInUse: 'E-pošta je već u upotrebi',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Gränsen för aktiva användare har nåtts',
|
||||
activeUserLimitReached: 'Gränsen för aktiva användare har nåtts',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Administratörsinloggning krävs för att initiera instansen',
|
||||
emailAlreadyInUse: 'E-mail används redan',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Aktif kullanıcı sınırına ulaşıldı',
|
||||
activeUserLimitReached: 'Aktif kullanıcı sınırına ulaşıldı',
|
||||
adminLoginRequiredToInitializeInstance: 'Örneği başlatmak için yönetici girişi gerekli',
|
||||
emailAlreadyInUse: 'E-posta adresi zaten kullanımda',
|
||||
emailOrUsername: 'E-posta adresi veya kullanıcı adı',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Досягнуто ліміту активних користувачів',
|
||||
activeUserLimitReached: 'Досягнуто ліміту активних користувачів',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Потрібен вхід адміністратора для ініціалізації екземпляра',
|
||||
emailAlreadyInUse: 'Електронна пошта вже використовується',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Faol foydalanuvchilar chegarasiga yetildi',
|
||||
activeUserLimitReached: 'Faol foydalanuvchilar chegarasiga yetildi',
|
||||
adminLoginRequiredToInitializeInstance:
|
||||
'Tizimni ishga tushirish uchun admin kirishi talab qilinadi',
|
||||
emailAlreadyInUse: 'E-mail allaqachon mavjud',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: 'Đã đạt giới hạn người dùng hoạt động',
|
||||
activeUserLimitReached: 'Đã đạt giới hạn người dùng hoạt động',
|
||||
adminLoginRequiredToInitializeInstance: 'Cần đăng nhập quản trị để khởi tạo phiên bản',
|
||||
emailAlreadyInUse: 'E-mail đã được sử dụng',
|
||||
emailOrUsername: 'E-mail hoặc tên đăng nhập',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: '活跃用户数已达上限',
|
||||
activeUserLimitReached: '活跃用户数已达上限',
|
||||
adminLoginRequiredToInitializeInstance: '需要管理员登录以初始化实例',
|
||||
emailAlreadyInUse: '邮箱已使用',
|
||||
emailOrUsername: '邮箱或用户名',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
translation: {
|
||||
common: {
|
||||
activeUsersLimitReached: '活躍使用者數已達上限',
|
||||
activeUserLimitReached: '活躍使用者數已達上限',
|
||||
adminLoginRequiredToInitializeInstance: '需要管理員登入以初始化實例',
|
||||
emailAlreadyInUse: '郵箱已被使用',
|
||||
emailOrUsername: '郵箱或使用者名稱',
|
||||
|
||||
@@ -11,7 +11,7 @@ export const selectBootstrap = ({ common: { bootstrap } }) => bootstrap;
|
||||
|
||||
export const selectOidcBootstrap = (state) => selectBootstrap(state).oidc;
|
||||
|
||||
export const selectActiveUsersLimit = (state) => selectBootstrap(state).activeUsersLimit;
|
||||
export const selectActiveUserLimit = (state) => selectBootstrap(state).activeUserLimit;
|
||||
|
||||
export const selectAccessToken = ({ auth: { accessToken } }) => accessToken;
|
||||
|
||||
@@ -28,7 +28,7 @@ export default {
|
||||
selectIsInitializing,
|
||||
selectBootstrap,
|
||||
selectOidcBootstrap,
|
||||
selectActiveUsersLimit,
|
||||
selectActiveUserLimit,
|
||||
selectAccessToken,
|
||||
selectAuthenticateForm,
|
||||
selectUserCreateForm,
|
||||
|
||||
@@ -51,7 +51,7 @@ export const selectActiveUsers = createSelector(orm, ({ User }) =>
|
||||
User.getActiveQuerySet().toRefArray(),
|
||||
);
|
||||
|
||||
export const selectActiveUsersTotal = createSelector(orm, ({ User }) =>
|
||||
export const selectActiveUserTotal = createSelector(orm, ({ User }) =>
|
||||
User.getActiveQuerySet().count(),
|
||||
);
|
||||
|
||||
@@ -347,7 +347,7 @@ export default {
|
||||
selectCurrentUserId,
|
||||
selectUsers,
|
||||
selectActiveUsers,
|
||||
selectActiveUsersTotal,
|
||||
selectActiveUserTotal,
|
||||
selectActiveAdminOrProjectOwnerUsers,
|
||||
selectCurrentUser,
|
||||
selectProjectIdsForCurrentUser,
|
||||
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
|
||||
# - INTERNAL_ACCESS_TOKEN=
|
||||
# - STORAGE_LIMIT=
|
||||
# - ACTIVE_USERS_LIMIT=
|
||||
# - ACTIVE_USER_LIMIT=
|
||||
# - CUSTOMER_PANEL_URL=
|
||||
|
||||
# Set to true to show more detailed authentication error messages.
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ services:
|
||||
|
||||
# - INTERNAL_ACCESS_TOKEN=
|
||||
# - STORAGE_LIMIT=
|
||||
# - ACTIVE_USERS_LIMIT=
|
||||
# - ACTIVE_USER_LIMIT=
|
||||
# - CUSTOMER_PANEL_URL=
|
||||
|
||||
# Set to true to show more detailed authentication error messages.
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ SECRET_KEY=notsecretkey
|
||||
|
||||
# INTERNAL_ACCESS_TOKEN=
|
||||
# STORAGE_LIMIT=
|
||||
# ACTIVE_USERS_LIMIT=
|
||||
# ACTIVE_USER_LIMIT=
|
||||
# CUSTOMER_PANEL_URL=
|
||||
|
||||
# Set to true to show more detailed authentication error messages.
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
* enum:
|
||||
* - Email already in use
|
||||
* - Username already in use
|
||||
* - Active users limit reached
|
||||
* - Active user limit reached
|
||||
* description: Specific error message
|
||||
* example: Email already in use
|
||||
* 422:
|
||||
@@ -182,8 +182,8 @@ const Errors = {
|
||||
USERNAME_ALREADY_IN_USE: {
|
||||
usernameAlreadyInUse: 'Username already in use',
|
||||
},
|
||||
ACTIVE_USERS_LIMIT_REACHED: {
|
||||
activeUsersLimitReached: 'Active users limit reached',
|
||||
ACTIVE_USER_LIMIT_REACHED: {
|
||||
activeUserLimitReached: 'Active user limit reached',
|
||||
},
|
||||
MISSING_VALUES: {
|
||||
missingValues: 'Unable to retrieve required values (email, name)',
|
||||
@@ -229,7 +229,7 @@ module.exports = {
|
||||
usernameAlreadyInUse: {
|
||||
responseType: 'conflict',
|
||||
},
|
||||
activeUsersLimitReached: {
|
||||
activeUserLimitReached: {
|
||||
responseType: 'conflict',
|
||||
},
|
||||
missingValues: {
|
||||
@@ -250,7 +250,7 @@ module.exports = {
|
||||
.intercept('invalidUserinfoConfiguration', () => Errors.INVALID_USERINFO_CONFIGURATION)
|
||||
.intercept('emailAlreadyInUse', () => Errors.EMAIL_ALREADY_IN_USE)
|
||||
.intercept('usernameAlreadyInUse', () => Errors.USERNAME_ALREADY_IN_USE)
|
||||
.intercept('activeLimitReached', () => Errors.ACTIVE_USERS_LIMIT_REACHED)
|
||||
.intercept('activeLimitReached', () => Errors.ACTIVE_USER_LIMIT_REACHED)
|
||||
.intercept('missingValues', () => Errors.MISSING_VALUES);
|
||||
|
||||
return sails.helpers.accessTokens.handleSteps
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
* type: boolean
|
||||
* description: Whether OIDC authentication is enforced (users must use OIDC to login)
|
||||
* example: false
|
||||
* activeUsersLimit:
|
||||
* activeUserLimit:
|
||||
* type: number
|
||||
* nullable: true
|
||||
* description: Maximum number of active users allowed (conditionally added for admins if configured)
|
||||
|
||||
@@ -22,7 +22,7 @@ module.exports = {
|
||||
};
|
||||
if (inputs.user && inputs.user.role === User.Roles.ADMIN) {
|
||||
Object.assign(data, {
|
||||
activeUsersLimit: sails.config.custom.activeUsersLimit,
|
||||
activeUserLimit: sails.config.custom.activeUserLimit,
|
||||
customerPanelUrl: sails.config.custom.customerPanelUrl,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ const defaultFind = (criteria) => User.find(criteria).sort('id');
|
||||
/* Query methods */
|
||||
|
||||
const createOne = (values) => {
|
||||
if (sails.config.custom.activeUsersLimit !== null) {
|
||||
if (sails.config.custom.activeUserLimit !== null) {
|
||||
return sails.getDatastore().transaction(async (db) => {
|
||||
const queryResult = await sails
|
||||
.sendNativeQuery('SELECT NULL FROM user_account WHERE is_deactivated = $1 FOR UPDATE', [
|
||||
@@ -33,7 +33,7 @@ const createOne = (values) => {
|
||||
])
|
||||
.usingConnection(db);
|
||||
|
||||
if (queryResult.rowCount >= sails.config.custom.activeUsersLimit) {
|
||||
if (queryResult.rowCount >= sails.config.custom.activeUserLimit) {
|
||||
throw 'activeLimitReached';
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ const getOneActiveByApiKeyHash = (apiKeyHash) =>
|
||||
|
||||
const updateOne = async (criteria, values) => {
|
||||
const enforceActiveLimit =
|
||||
values.isDeactivated === false && sails.config.custom.activeUsersLimit !== null;
|
||||
values.isDeactivated === false && sails.config.custom.activeUserLimit !== null;
|
||||
|
||||
if (!_.isUndefined(values.avatar) || enforceActiveLimit) {
|
||||
return sails.getDatastore().transaction(async (db) => {
|
||||
@@ -98,7 +98,7 @@ const updateOne = async (criteria, values) => {
|
||||
])
|
||||
.usingConnection(db);
|
||||
|
||||
if (queryResult.rowCount >= sails.config.custom.activeUsersLimit) {
|
||||
if (queryResult.rowCount >= sails.config.custom.activeUserLimit) {
|
||||
throw 'activeLimitReached';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ module.exports.custom = {
|
||||
|
||||
internalAccessToken: process.env.INTERNAL_ACCESS_TOKEN,
|
||||
storageLimit: envToBytes(process.env.STORAGE_LIMIT),
|
||||
activeUsersLimit: envToNumber(process.env.ACTIVE_USERS_LIMIT),
|
||||
activeUserLimit: envToNumber(process.env.ACTIVE_USER_LIMIT),
|
||||
customerPanelUrl: process.env.CUSTOMER_PANEL_URL,
|
||||
|
||||
showDetailedAuthErrors: process.env.SHOW_DETAILED_AUTH_ERRORS === 'true',
|
||||
|
||||
@@ -57,9 +57,9 @@ exports.seed = async (knex) => {
|
||||
}
|
||||
}
|
||||
|
||||
const activeUsersLimit = parseInt(process.env.ACTIVE_USERS_LIMIT, 10);
|
||||
const activeUserLimit = parseInt(process.env.ACTIVE_USER_LIMIT, 10);
|
||||
|
||||
if (!Number.isNaN(activeUsersLimit)) {
|
||||
if (!Number.isNaN(activeUserLimit)) {
|
||||
let orderByQuery;
|
||||
let orderByQueryValues;
|
||||
|
||||
@@ -76,7 +76,7 @@ exports.seed = async (knex) => {
|
||||
.where('is_deactivated', false)
|
||||
.orderByRaw(orderByQuery, orderByQueryValues)
|
||||
.orderBy('id')
|
||||
.offset(activeUsersLimit);
|
||||
.offset(activeUserLimit);
|
||||
|
||||
if (users.length > 0) {
|
||||
const userIds = users.map(({ id }) => id);
|
||||
|
||||
Reference in New Issue
Block a user