diff --git a/client/src/components/common/Root.jsx b/client/src/components/common/Root.jsx
index 7485a925..6d1bd5a7 100755
--- a/client/src/components/common/Root.jsx
+++ b/client/src/components/common/Root.jsx
@@ -32,7 +32,6 @@ function Root({ store, history }) {
} />
- } />
} />
} />
} />
diff --git a/client/src/components/users/EditUserEmailStep/EditUserEmailStep.jsx b/client/src/components/users/EditUserEmailStep/EditUserEmailStep.jsx
index 96cd85c6..3bd7e42f 100644
--- a/client/src/components/users/EditUserEmailStep/EditUserEmailStep.jsx
+++ b/client/src/components/users/EditUserEmailStep/EditUserEmailStep.jsx
@@ -47,12 +47,11 @@ const EditUserEmailStep = React.memo(({ id, onBack, onClose }) => {
const {
email,
- isSsoUser,
emailUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
- (state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
+ (state) => id === selectors.selectCurrentUserId(state),
);
const dispatch = useDispatch();
diff --git a/client/src/components/users/EditUserPasswordStep/EditUserPasswordStep.jsx b/client/src/components/users/EditUserPasswordStep/EditUserPasswordStep.jsx
index a7ffa2e9..d24bd2ed 100644
--- a/client/src/components/users/EditUserPasswordStep/EditUserPasswordStep.jsx
+++ b/client/src/components/users/EditUserPasswordStep/EditUserPasswordStep.jsx
@@ -42,12 +42,11 @@ const EditUserPasswordStep = React.memo(({ id, onBack, onClose }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const {
- isSsoUser,
passwordUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
- (state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
+ (state) => id === selectors.selectCurrentUserId(state),
);
const dispatch = useDispatch();
diff --git a/client/src/components/users/EditUserUsernameStep/EditUserUsernameStep.jsx b/client/src/components/users/EditUserUsernameStep/EditUserUsernameStep.jsx
index 2ac2fbdb..5c363289 100644
--- a/client/src/components/users/EditUserUsernameStep/EditUserUsernameStep.jsx
+++ b/client/src/components/users/EditUserUsernameStep/EditUserUsernameStep.jsx
@@ -47,12 +47,11 @@ const EditUserUsernameStep = React.memo(({ id, onBack, onClose }) => {
const {
username,
- isSsoUser,
usernameUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
- (state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
+ (state) => id === selectors.selectCurrentUserId(state),
);
const dispatch = useDispatch();
diff --git a/client/src/constants/ActionTypes.js b/client/src/constants/ActionTypes.js
index a947e279..1bd8f15f 100644
--- a/client/src/constants/ActionTypes.js
+++ b/client/src/constants/ActionTypes.js
@@ -26,10 +26,6 @@ export default {
AUTHENTICATE: 'AUTHENTICATE',
AUTHENTICATE__SUCCESS: 'AUTHENTICATE__SUCCESS',
AUTHENTICATE__FAILURE: 'AUTHENTICATE__FAILURE',
- WITH_OIDC_AUTHENTICATE: 'WITH_OIDC_AUTHENTICATE',
- WITH_OIDC_AUTHENTICATE__SUCCESS: 'WITH_OIDC_AUTHENTICATE__SUCCESS',
- WITH_OIDC_AUTHENTICATE__FAILURE: 'WITH_OIDC_AUTHENTICATE__FAILURE',
- WITH_OIDC_AUTHENTICATE__DEBUG: 'WITH_OIDC_AUTHENTICATE__DEBUG',
AUTHENTICATE_ERROR_CLEAR: 'AUTHENTICATE_ERROR_CLEAR',
TERMS_ACCEPT: 'TERMS_ACCEPT',
TERMS_ACCEPT__SUCCESS: 'TERMS_ACCEPT__SUCCESS',
diff --git a/client/src/constants/EntryActionTypes.js b/client/src/constants/EntryActionTypes.js
index 3a99a4f0..bc8bd28b 100755
--- a/client/src/constants/EntryActionTypes.js
+++ b/client/src/constants/EntryActionTypes.js
@@ -20,7 +20,6 @@ export default {
/* Login */
AUTHENTICATE: `${PREFIX}/AUTHENTICATE`,
- WITH_OIDC_AUTHENTICATE: `${PREFIX}/WITH_OIDC_AUTHENTICATE`,
AUTHENTICATE_ERROR_CLEAR: `${PREFIX}/AUTHENTICATE_ERROR_CLEAR`,
TERMS_ACCEPT: `${PREFIX}/TERMS_ACCEPT`,
TERMS_CANCEL: `${PREFIX}/TERMS_CANCEL`,
diff --git a/client/src/constants/Paths.js b/client/src/constants/Paths.js
index 940eb932..7380e62c 100755
--- a/client/src/constants/Paths.js
+++ b/client/src/constants/Paths.js
@@ -7,7 +7,6 @@ import Config from './Config';
const ROOT = `${Config.BASE_PATH}/`;
const LOGIN = `${Config.BASE_PATH}/login`;
-const OIDC_CALLBACK = `${Config.BASE_PATH}/oidc-callback`;
const PROJECTS = `${Config.BASE_PATH}/projects/:id`;
const BOARDS = `${Config.BASE_PATH}/boards/:id`;
const CARDS = `${Config.BASE_PATH}/cards/:id`;
@@ -15,7 +14,6 @@ const CARDS = `${Config.BASE_PATH}/cards/:id`;
export default {
ROOT,
LOGIN,
- OIDC_CALLBACK,
PROJECTS,
BOARDS,
CARDS,
diff --git a/client/src/entry-actions/login.js b/client/src/entry-actions/login.js
index 1d1407e7..1dd99ebb 100755
--- a/client/src/entry-actions/login.js
+++ b/client/src/entry-actions/login.js
@@ -12,11 +12,6 @@ const authenticate = (data) => ({
},
});
-const authenticateWithOidc = () => ({
- type: EntryActionTypes.WITH_OIDC_AUTHENTICATE,
- payload: {},
-});
-
const clearAuthenticateError = () => ({
type: EntryActionTypes.AUTHENTICATE_ERROR_CLEAR,
payload: {},
@@ -43,7 +38,6 @@ const updateTermsLanguage = (value) => ({
export default {
authenticate,
- authenticateWithOidc,
clearAuthenticateError,
acceptTerms,
cancelTerms,
diff --git a/client/src/locales/ar-YE/core.js b/client/src/locales/ar-YE/core.js
index c4bdfae3..ea2833d3 100644
--- a/client/src/locales/ar-YE/core.js
+++ b/client/src/locales/ar-YE/core.js
@@ -83,8 +83,6 @@ export default {
'هل أنت متأكد أنك تريد إزالة هذا المدير من المشروع؟',
areYouSureYouWantToRemoveThisMemberFromBoard:
'هل أنت متأكد أنك تريد إزالة هذا العضو من اللوحة؟',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'هل أنت متأكد أنك تريد إلغاء ربط تسجيل الدخول الموحد من هذا المستخدم؟ سيسمح هذا للمستخدم بتسجيل الدخول باستخدام كلمة المرور.',
assignAsOwner_title: 'تعيين كمالك',
atLeastOneListMustBePresent: 'يجب وجود قائمة واحدة على الأقل',
attachment: 'مرفق',
@@ -330,7 +328,6 @@ export default {
turnOffRecentCardHighlighting: 'إيقاف تمييز البطاقات الحديثة',
typeNameToConfirm: 'اكتب الاسم للتأكيد.',
typeTitleToConfirm: 'اكتب العنوان للتأكيد.',
- unlinkSso_title: 'إلغاء ربط تسجيل الدخول الموحد',
unsavedChanges: 'تغييرات غير محفوظة',
uploadFailedFileIsTooBig: 'فشل الرفع: الملف كبير جداً.',
uploadFailedNotEnoughStorageSpace: 'فشل الرفع: مساحة التخزين غير كافية.',
@@ -497,8 +494,6 @@ export default {
start: 'ابدأ',
stop: 'توقف',
subscribe: 'اشترك',
- unlinkSso: 'إلغاء ربط تسجيل الدخول الموحد',
- unlinkSso_title: 'إلغاء ربط تسجيل الدخول الموحد',
unsubscribe: 'إلغاء الاشتراك',
uploadNewAvatar: 'رفع صورة رمزية جديدة',
uploadNewImage: 'رفع صورة جديدة',
diff --git a/client/src/locales/ar-YE/login.js b/client/src/locales/ar-YE/login.js
index 95680b19..ce042781 100644
--- a/client/src/locales/ar-YE/login.js
+++ b/client/src/locales/ar-YE/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'مدعوم بواسطة <1>PLANKA1>',
serverConnectionFailed: 'فشل الاتصال بالخادم',
unknownError: 'خطأ غير معروف، يرجى المحاولة لاحقاً',
- useSingleSignOn: 'استخدم تسجيل الدخول الموحد',
usernameAlreadyInUse: 'اسم المستخدم تم استخدامه بالفعل',
whoops_title: 'عفواً!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'إلغاء وإغلاق',
continue: 'متابعة',
- debugSso: 'تصحيح أخطاء تسجيل الدخول الموحد',
goBack: 'العودة',
goHome: 'الذهاب للرئيسية',
logIn: 'تسجيل الدخول',
- logInWithSso: 'تسجيل الدخول باستخدام SSO',
},
},
};
diff --git a/client/src/locales/bg-BG/core.js b/client/src/locales/bg-BG/core.js
index ccd90409..08714e30 100644
--- a/client/src/locales/bg-BG/core.js
+++ b/client/src/locales/bg-BG/core.js
@@ -92,8 +92,6 @@ export default {
'Сигурни ли сте, че искате да премахнете този мениджър от проекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Сигурни ли сте, че искате да премахнете този член от таблото?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Сигурни ли сте, че искате да премахнете SSO връзката от този потребител? Това ще позволи на потребителя да влиза с парола.',
assignAsOwner_title: 'Назначаване като собственик',
atLeastOneListMustBePresent: 'Трябва да присъства поне един списък',
attachment: 'Прикачен файл',
@@ -343,7 +341,6 @@ export default {
turnOffRecentCardHighlighting: 'Изключване на подчертаването на скорошни карти',
typeNameToConfirm: 'Въведете име за потвърждение.',
typeTitleToConfirm: 'Въведете заглавие за потвърждение.',
- unlinkSso_title: 'Премахване на SSO връзка',
unsavedChanges: 'Незапазени промени',
uploadFailedFileIsTooBig: 'Качването неуспешно: файлът е твърде голям.',
uploadFailedNotEnoughStorageSpace:
@@ -512,8 +509,6 @@ export default {
start: 'Старт',
stop: 'Стоп',
subscribe: 'Абонирайте се',
- unlinkSso: 'Премахни SSO връзка',
- unlinkSso_title: 'Премахни SSO връзка',
unsubscribe: 'Отписване',
uploadNewAvatar: 'Качване на нов аватар',
uploadNewImage: 'Качване на ново изображение',
diff --git a/client/src/locales/bg-BG/login.js b/client/src/locales/bg-BG/login.js
index 0a42126c..6e006e77 100644
--- a/client/src/locales/bg-BG/login.js
+++ b/client/src/locales/bg-BG/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Задвижвано от <1>PLANKA1>',
serverConnectionFailed: 'Неуспешна връзка със сървъра',
unknownError: 'Неизвестна грешка, опитайте отново по-късно',
- useSingleSignOn: 'Използване на single sign-on',
usernameAlreadyInUse: 'Потребителското име вече се използва',
whoops_title: 'Опа!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Отказ и затваряне',
continue: 'Продължи',
- debugSso: 'Дебъгване на SSO',
goBack: 'Назад',
goHome: 'Към началото',
logIn: 'Вход',
- logInWithSso: 'Вход чрез SSO',
},
},
};
diff --git a/client/src/locales/ca-ES/core.js b/client/src/locales/ca-ES/core.js
index 3dfd29fb..88964043 100644
--- a/client/src/locales/ca-ES/core.js
+++ b/client/src/locales/ca-ES/core.js
@@ -90,8 +90,6 @@ export default {
'Estàs segur que vols eliminar aquest gestor del projecte?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Estàs segur que vols eliminar aquest membre del tauler?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- "Estàs segur que vols desvincular SSO d'aquest usuari? Això permetrà que l'usuari iniciï sessió amb una contrasenya.",
assignAsOwner_title: 'Assignar com a propietari',
atLeastOneListMustBePresent: "Hi ha d'haver com a mínim una llista",
attachment: 'Fitxer adjunt',
@@ -344,7 +342,6 @@ export default {
turnOffRecentCardHighlighting: 'Desactivar ressaltat de targetes recents',
typeNameToConfirm: 'Escriu el nom per confirmar.',
typeTitleToConfirm: 'Escriu el títol per confirmar.',
- unlinkSso_title: 'Desvinculació de SSO',
unsavedChanges: 'Canvis sense desar',
uploadFailedFileIsTooBig: 'Error en pujar: El fitxer és massa gran.',
uploadFailedNotEnoughStorageSpace: "Error en pujar: No hi ha prou espai d'emmagatzematge.",
@@ -514,8 +511,6 @@ export default {
start: 'Iniciar',
stop: 'Aturar',
subscribe: "Subscriure's",
- unlinkSso: 'Desvincular SSO',
- unlinkSso_title: 'Desvincular SSO',
unsubscribe: 'Cancel·lar subscripció',
uploadNewAvatar: 'Pujar nou avatar',
uploadNewImage: 'Pujar nova imatge',
diff --git a/client/src/locales/ca-ES/login.js b/client/src/locales/ca-ES/login.js
index bf09fb13..564ccd99 100644
--- a/client/src/locales/ca-ES/login.js
+++ b/client/src/locales/ca-ES/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Desenvolupat amb <1>PLANKA1>',
serverConnectionFailed: 'Error de connexió amb el servidor',
unknownError: 'Error desconegut, torna-ho a provar més tard',
- useSingleSignOn: 'Utilitzar inici de sessió únic',
usernameAlreadyInUse: "Nom d'usuari ja en ús",
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Cancel·lar i tancar',
continue: 'Continuar',
- debugSso: 'Depurar SSO',
goBack: 'Tornar',
goHome: "Anar a l'inici",
logIn: 'Iniciar sessió',
- logInWithSso: 'Iniciar sessió amb SSO',
},
},
};
diff --git a/client/src/locales/cs-CZ/core.js b/client/src/locales/cs-CZ/core.js
index 7be7c3ea..80bf6afa 100644
--- a/client/src/locales/cs-CZ/core.js
+++ b/client/src/locales/cs-CZ/core.js
@@ -85,8 +85,6 @@ export default {
'Opravdu chcete tohoto správce z projektu odebrat?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Opravdu chcete tohoto člena odebrat z nástěnky?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Opravdu chcete odpojit SSO od tohoto uživatele? Tím umožníte uživateli přihlásit se pomocí hesla.',
assignAsOwner_title: 'Přiřadit jako vlastníka',
atLeastOneListMustBePresent: 'Musí být k dispozici alespoň jeden seznam',
attachment: 'Příloha',
@@ -334,7 +332,6 @@ export default {
turnOffRecentCardHighlighting: 'Vypnout zvýraznění posledních karet',
typeNameToConfirm: 'Zadejte název pro potvrzení.',
typeTitleToConfirm: 'Zadejte titulek pro potvrzení.',
- unlinkSso_title: 'Odpojení SSO',
unsavedChanges: 'Neuložené změny',
uploadFailedFileIsTooBig: 'Nahrávání se nezdařilo: Soubor je příliš velký.',
uploadFailedNotEnoughStorageSpace: 'Nahrávání se nezdařilo: Nedostatek úložného prostoru.',
@@ -502,8 +499,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Odebírat',
- unlinkSso: 'Odpojit SSO',
- unlinkSso_title: 'Odpojit SSO',
unsubscribe: 'Neodebírat',
uploadNewAvatar: 'Nahrát nový avatar',
uploadNewImage: 'Nahrát nový obrázek',
diff --git a/client/src/locales/cs-CZ/login.js b/client/src/locales/cs-CZ/login.js
index d3930f35..604b3718 100644
--- a/client/src/locales/cs-CZ/login.js
+++ b/client/src/locales/cs-CZ/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Poháněno technologií <1>PLANKA1>',
serverConnectionFailed: 'Připojení k serveru selhalo',
unknownError: 'Neznámá chyba, zkuste to později',
- useSingleSignOn: 'Použít jednorázové přihlášení',
usernameAlreadyInUse: 'Uživatelské jméno se již používá',
whoops_title: 'Jejda!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Zrušit a zavřít',
continue: 'Pokračovat',
- debugSso: 'Ladit SSO',
goBack: 'Zpět',
goHome: 'Domů',
logIn: 'Přihlásit se',
- logInWithSso: 'Přihlásit se pomocí SSO',
},
},
};
diff --git a/client/src/locales/da-DK/core.js b/client/src/locales/da-DK/core.js
index 943a7798..f28e0165 100644
--- a/client/src/locales/da-DK/core.js
+++ b/client/src/locales/da-DK/core.js
@@ -88,8 +88,6 @@ export default {
'Er du sikker på at du vil fjerne denne projektleder fra projektet?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Er du sikker på at du vil fjerne dette medlem fra tavlen?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Er du sikker på, at du vil fjerne SSO-forbindelsen fra denne bruger? Dette vil tillade brugeren at logge ind med en adgangskode.',
assignAsOwner_title: 'Sæt som ejer',
atLeastOneListMustBePresent: 'Mindst én liste skal være til stede',
attachment: 'Vedhæft fil',
@@ -340,7 +338,6 @@ export default {
turnOffRecentCardHighlighting: 'Slå fremhævelse af nylige kort fra',
typeNameToConfirm: 'Skriv navnet for at bekræfte.',
typeTitleToConfirm: 'Skriv overskriften for at bekræfte.',
- unlinkSso_title: 'Fjernelse af SSO-forbindelse',
unsavedChanges: 'Ikke-gemte ændringer',
uploadFailedFileIsTooBig: 'Upload mislykkedes: Filen er for stor.',
uploadFailedNotEnoughStorageSpace: 'Upload mislykkedes: Ikke nok lagerplads.',
@@ -508,8 +505,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Abonnér',
- unlinkSso: 'Fjern SSO-forbindelse',
- unlinkSso_title: 'Fjern SSO-forbindelse',
unsubscribe: 'Opsig abonnement',
uploadNewAvatar: 'Tilføj nyt profilbillede',
uploadNewImage: 'Tilføj nyt billede',
diff --git a/client/src/locales/da-DK/login.js b/client/src/locales/da-DK/login.js
index 0c96c404..cef4ad66 100644
--- a/client/src/locales/da-DK/login.js
+++ b/client/src/locales/da-DK/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Drevet af <1>PLANKA1>',
serverConnectionFailed: 'Ingen forbindelse til serveren',
unknownError: 'Ukendt fejl - prøv igen',
- useSingleSignOn: 'Anvend single sign-on',
usernameAlreadyInUse: 'Brugernavn allerede i brug',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Annuller og luk',
continue: 'Fortsæt',
- debugSso: 'Fejlfind SSO',
goBack: 'Gå tilbage',
goHome: 'Gå hjem',
logIn: 'Log på',
- logInWithSso: 'Log på med SSO',
},
},
};
diff --git a/client/src/locales/de-DE/core.js b/client/src/locales/de-DE/core.js
index 086e59a0..f6c1ab16 100644
--- a/client/src/locales/de-DE/core.js
+++ b/client/src/locales/de-DE/core.js
@@ -101,8 +101,6 @@ export default {
'Sind Sie sicher, dass Sie diesen Projektleiter aus dem Projekt entfernen möchten?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Sind Sie sicher, dass Sie dieses Mitglied aus dem Arbeitsbereich entfernen möchten?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Sind Sie sicher, dass Sie die SSO-Verknüpfung von diesem Benutzer aufheben möchten? Dies ermöglicht dem Benutzer die Anmeldung mit einem Passwort.',
assignAsOwner_title: 'Als Eigentümer zuweisen',
atLeastOneListMustBePresent: 'Mindestens eine Liste muss vorhanden sein',
attachment: 'Anhang',
@@ -354,7 +352,6 @@ export default {
turnOffRecentCardHighlighting: 'Hervorhebung neuer Karten ausschalten',
typeNameToConfirm: 'Namen zur Bestätigung eingeben.',
typeTitleToConfirm: 'Titel zur Bestätigung eingeben.',
- unlinkSso_title: 'SSO-Verknüpfung aufheben',
unsavedChanges: 'Ungespeicherte Änderungen',
uploadFailedFileIsTooBig: 'Upload fehlgeschlagen: Datei ist zu groß.',
uploadFailedNotEnoughStorageSpace: 'Upload fehlgeschlagen: Nicht genügend Speicherplatz.',
@@ -524,8 +521,6 @@ export default {
start: 'Start',
stop: 'Stopp',
subscribe: 'Abonnieren',
- unlinkSso: 'SSO-Verknüpfung aufheben',
- unlinkSso_title: 'SSO-Verknüpfung aufheben',
unsubscribe: 'De-abonnieren',
uploadNewAvatar: 'Neuen Avatar hochladen',
uploadNewImage: 'Neues Bild hochladen',
diff --git a/client/src/locales/de-DE/login.js b/client/src/locales/de-DE/login.js
index 28d84499..ea2f4311 100644
--- a/client/src/locales/de-DE/login.js
+++ b/client/src/locales/de-DE/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Serververbindung fehlgeschlagen',
unknownError: 'Unbekannter Fehler, bitte später erneut versuchen',
- useSingleSignOn: 'Einmalige Anmeldung (SSO) verwenden',
usernameAlreadyInUse: 'Benutzername wird bereits verwendet',
whoops_title: 'Hoppla!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Abbrechen und schließen',
continue: 'Fortfahren',
- debugSso: 'SSO debuggen',
goBack: 'Zurück gehen',
goHome: 'Zur Startseite',
logIn: 'Einloggen',
- logInWithSso: 'Einloggen mit SSO',
},
},
};
diff --git a/client/src/locales/el-GR/core.js b/client/src/locales/el-GR/core.js
index 6a85bdec..49a9712b 100644
--- a/client/src/locales/el-GR/core.js
+++ b/client/src/locales/el-GR/core.js
@@ -100,8 +100,6 @@ export default {
'Είστε σίγουροι ότι θέλετε να αφαιρέσετε αυτόν τον διαχειριστή από το έργο;',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Είστε σίγουροι ότι θέλετε να αφαιρέσετε αυτό το μέλος από τον πίνακα;',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Είστε σίγουροι ότι θέλετε να αποσυνδέσετε το SSO από αυτόν τον χρήστη; Αυτό θα επιτρέψει στον χρήστη να συνδεθεί με κωδικό πρόσβασης.',
assignAsOwner_title: 'Ορισμός ως ιδιοκτήτης',
atLeastOneListMustBePresent: 'Πρέπει να υπάρχει τουλάχιστον μία λίστα',
attachment: 'Συνημμένο',
@@ -354,7 +352,6 @@ export default {
turnOffRecentCardHighlighting: 'Απενεργοποίηση επισήμανσης πρόσφατων καρτών',
typeNameToConfirm: 'Πληκτρολογήστε το όνομα για επιβεβαίωση.',
typeTitleToConfirm: 'Πληκτρολογήστε τον τίτλο για επιβεβαίωση.',
- unlinkSso_title: 'Αποσύνδεση SSO',
unsavedChanges: 'Μη αποθηκευμένες αλλαγές',
uploadFailedFileIsTooBig: 'Η μεταφόρτωση απέτυχε: το αρχείο είναι πολύ μεγάλο.',
uploadFailedNotEnoughStorageSpace:
@@ -529,8 +526,6 @@ export default {
start: 'Έναρξη',
stop: 'Διακοπή',
subscribe: 'Εγγραφή',
- unlinkSso: 'Αποσύνδεση SSO',
- unlinkSso_title: 'Αποσύνδεση SSO',
unsubscribe: 'Απεγγραφή',
uploadNewAvatar: 'Μεταφόρτωση νέου avatar',
uploadNewImage: 'Μεταφόρτωση νέας εικόνας',
diff --git a/client/src/locales/el-GR/login.js b/client/src/locales/el-GR/login.js
index cf8f41e5..dcb104ba 100644
--- a/client/src/locales/el-GR/login.js
+++ b/client/src/locales/el-GR/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Με την υποστήριξη του <1>PLANKA1>',
serverConnectionFailed: 'Αποτυχία σύνδεσης με τον διακομιστή',
unknownError: 'Άγνωστο σφάλμα, δοκιμάστε ξανά αργότερα',
- useSingleSignOn: 'Χρήση Single Sign-On',
usernameAlreadyInUse: 'Το όνομα χρήστη χρησιμοποιείται ήδη',
whoops_title: 'Ωχ!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Ακύρωση και κλείσιμο',
continue: 'Συνέχεια',
- debugSso: 'Αποσφαλμάτωση SSO',
goBack: 'Επιστροφή',
goHome: 'Αρχική σελίδα',
logIn: 'Σύνδεση',
- logInWithSso: 'Σύνδεση με SSO',
},
},
};
diff --git a/client/src/locales/en-GB/core.js b/client/src/locales/en-GB/core.js
index 4adc5afa..50c69c6d 100644
--- a/client/src/locales/en-GB/core.js
+++ b/client/src/locales/en-GB/core.js
@@ -88,8 +88,6 @@ export default {
'Are you sure you want to remove this manager from the project?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Are you sure you want to remove this member from the board?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Are you sure you want to unlink SSO from this user? This will allow the user to log in with a password.',
assignAsOwner_title: 'Assign As Owner',
atLeastOneListMustBePresent: 'At least one list must be present',
attachment: 'Attachment',
@@ -337,7 +335,6 @@ export default {
turnOffRecentCardHighlighting: 'Turn off recent card highlighting',
typeNameToConfirm: 'Type the name to confirm.',
typeTitleToConfirm: 'Type the title to confirm.',
- unlinkSso_title: 'Unlink SSO',
unsavedChanges: 'Unsaved changes',
uploadFailedFileIsTooBig: 'Upload failed: File is too big.',
uploadFailedNotEnoughStorageSpace: 'Upload failed: Not enough storage space.',
@@ -504,8 +501,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Subscribe',
- unlinkSso: 'Unlink SSO',
- unlinkSso_title: 'Unlink SSO',
unsubscribe: 'Unsubscribe',
uploadNewAvatar: 'Upload new avatar',
uploadNewImage: 'Upload new image',
diff --git a/client/src/locales/en-GB/login.js b/client/src/locales/en-GB/login.js
index 7735457c..3a1d2548 100644
--- a/client/src/locales/en-GB/login.js
+++ b/client/src/locales/en-GB/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Server connection failed',
unknownError: 'Unknown error, try again later',
- useSingleSignOn: 'Use single sign-on',
usernameAlreadyInUse: 'Username already in use',
whoops_title: 'Whoops!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'Cancel and close',
continue: 'Continue',
- debugSso: 'Debug SSO',
goBack: 'Go back',
goHome: 'Go home',
logIn: 'Log in',
- logInWithSso: 'Log in with SSO',
},
},
};
diff --git a/client/src/locales/en-US/core.js b/client/src/locales/en-US/core.js
index bf906854..6ec96b47 100644
--- a/client/src/locales/en-US/core.js
+++ b/client/src/locales/en-US/core.js
@@ -83,8 +83,6 @@ export default {
'Are you sure you want to remove this manager from the project?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Are you sure you want to remove this member from the board?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Are you sure you want to unlink SSO from this user? This will allow the user to log in with a password.',
assignAsOwner_title: 'Assign As Owner',
atLeastOneListMustBePresent: 'At least one list must be present',
attachment: 'Attachment',
@@ -332,7 +330,6 @@ export default {
turnOffRecentCardHighlighting: 'Turn off recent card highlighting',
typeNameToConfirm: 'Type the name to confirm.',
typeTitleToConfirm: 'Type the title to confirm.',
- unlinkSso_title: 'Inlink SSO',
unsavedChanges: 'Unsaved changes',
uploadFailedFileIsTooBig: 'Upload failed: File is too big.',
uploadFailedNotEnoughStorageSpace: 'Upload failed: Not enough storage space.',
@@ -499,8 +496,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Subscribe',
- unlinkSso: 'Unlink SSO',
- unlinkSso_title: 'Unlink SSO',
unsubscribe: 'Unsubscribe',
uploadNewAvatar: 'Upload new avatar',
uploadNewImage: 'Upload new image',
diff --git a/client/src/locales/en-US/login.js b/client/src/locales/en-US/login.js
index 7735457c..3a1d2548 100644
--- a/client/src/locales/en-US/login.js
+++ b/client/src/locales/en-US/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Server connection failed',
unknownError: 'Unknown error, try again later',
- useSingleSignOn: 'Use single sign-on',
usernameAlreadyInUse: 'Username already in use',
whoops_title: 'Whoops!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'Cancel and close',
continue: 'Continue',
- debugSso: 'Debug SSO',
goBack: 'Go back',
goHome: 'Go home',
logIn: 'Log in',
- logInWithSso: 'Log in with SSO',
},
},
};
diff --git a/client/src/locales/es-ES/core.js b/client/src/locales/es-ES/core.js
index 927a1de9..bd4a6df8 100644
--- a/client/src/locales/es-ES/core.js
+++ b/client/src/locales/es-ES/core.js
@@ -92,8 +92,6 @@ export default {
'¿Estás seguro de que quieres eliminar este gestor del proyecto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'¿Estás seguro de que quieres eliminar este miembro del tablero?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- '¿Estás seguro de que quieres desvincular SSO de este usuario? Esto permitirá que el usuario inicie sesión con una contraseña.',
assignAsOwner_title: 'Asignar como propietario',
atLeastOneListMustBePresent: 'Debe existir al menos una lista',
attachment: 'Archivo adjunto',
@@ -345,7 +343,6 @@ export default {
turnOffRecentCardHighlighting: 'Desactivar resaltado de tarjetas recientes',
typeNameToConfirm: 'Escribe el nombre para confirmar.',
typeTitleToConfirm: 'Escribe el título para confirmar.',
- unlinkSso_title: 'Desvinculación de SSO',
unsavedChanges: 'Cambios sin guardar',
uploadFailedFileIsTooBig: 'Error al subir: El archivo es demasiado grande.',
uploadFailedNotEnoughStorageSpace:
@@ -514,8 +511,6 @@ export default {
start: 'Iniciar',
stop: 'Detener',
subscribe: 'Suscribirse',
- unlinkSso: 'Desvincular SSO',
- unlinkSso_title: 'Desvincular SSO',
unsubscribe: 'Cancelar suscripción',
uploadNewAvatar: 'Subir nuevo avatar',
uploadNewImage: 'Subir nueva imagen',
diff --git a/client/src/locales/es-ES/login.js b/client/src/locales/es-ES/login.js
index c0c6e435..775e69cf 100644
--- a/client/src/locales/es-ES/login.js
+++ b/client/src/locales/es-ES/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Desarrollado con <1>PLANKA1>',
serverConnectionFailed: 'Error de conexión con el servidor',
unknownError: 'Error desconocido, inténtalo más tarde',
- useSingleSignOn: 'Usar inicio de sesión único',
usernameAlreadyInUse: 'Nombre de usuario ya en uso',
whoops_title: '¡Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Cancelar y cerrar',
continue: 'Continuar',
- debugSso: 'Depurar SSO',
goBack: 'Volver',
goHome: 'Ir al inicio',
logIn: 'Iniciar sesión',
- logInWithSso: 'Iniciar sesión con SSO',
},
},
};
diff --git a/client/src/locales/et-EE/core.js b/client/src/locales/et-EE/core.js
index 4b49f7c1..38ef559a 100644
--- a/client/src/locales/et-EE/core.js
+++ b/client/src/locales/et-EE/core.js
@@ -89,8 +89,6 @@ export default {
'Oled kindel, et soovid seda haldurit projektist eemaldada?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Oled kindel, et soovid seda liiget tahvlilt eemaldada?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Kas olete kindel, et soovite selle kasutaja SSO sidet eemaldada? See võimaldab kasutajal sisse logida parooliga.',
assignAsOwner_title: 'Määra omanikuks',
atLeastOneListMustBePresent: 'Vähemalt üks nimekiri peab olemas olema',
attachment: 'Manus',
@@ -337,7 +335,6 @@ export default {
turnOffRecentCardHighlighting: 'Lülita välja hiljuti kuvatud kaardi üleminek',
typeNameToConfirm: 'Sisestage nimi, et kinnitada.',
typeTitleToConfirm: 'Sisestage pealkiri, et kinnitada.',
- unlinkSso_title: 'SSO sidemete eemaldamine',
unsavedChanges: 'Muudetud andmed',
uploadFailedFileIsTooBig: 'Üleslaadimine ebaõnnestus: fail on liiga suur.',
uploadFailedNotEnoughStorageSpace:
@@ -506,8 +503,6 @@ export default {
start: 'Alusta',
stop: 'Peata',
subscribe: 'Telli',
- unlinkSso: 'Eemalda SSO side',
- unlinkSso_title: 'Eemalda SSO side',
unsubscribe: 'Tühista tellimus',
uploadNewAvatar: 'Laadi üles uus avatar',
uploadNewImage: 'Laadi üles uus pilt',
diff --git a/client/src/locales/et-EE/login.js b/client/src/locales/et-EE/login.js
index dec27616..65caa20f 100644
--- a/client/src/locales/et-EE/login.js
+++ b/client/src/locales/et-EE/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Töötab <1>PLANKA1> platvormil',
serverConnectionFailed: 'Serveriühendus ebaõnnestus',
unknownError: 'Tundmatu viga, proovi hiljem uuesti',
- useSingleSignOn: 'Kasuta ühekordset sisselogimist',
usernameAlreadyInUse: 'Kasutajanimi on juba kasutusel',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Tühista ja sulge',
continue: 'Jätka',
- debugSso: 'Siluda SSO',
goBack: 'Tagasi',
goHome: 'Koju',
logIn: 'Logi sisse',
- logInWithSso: 'Logi sisse SSO-ga',
},
},
};
diff --git a/client/src/locales/fa-IR/core.js b/client/src/locales/fa-IR/core.js
index eb0e30f4..fdc74d80 100644
--- a/client/src/locales/fa-IR/core.js
+++ b/client/src/locales/fa-IR/core.js
@@ -91,8 +91,6 @@ export default {
'آیا مطمئن هستید که میخواهید این مدیر را از پروژه حذف کنید؟',
areYouSureYouWantToRemoveThisMemberFromBoard:
'آیا مطمئن هستید که میخواهید این عضو را از برد حذف کنید؟',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'آیا مطمئن هستید که میخواهید پیوند SSO را از این کاربر لغو کنید؟ این به کاربر اجازه میدهد با رمز عبور وارد شود.',
assignAsOwner_title: 'تعیین به عنوان مالک',
atLeastOneListMustBePresent: 'حداقل یک لیست باید وجود داشته باشد',
attachment: 'پیوست',
@@ -340,7 +338,6 @@ export default {
turnOffRecentCardHighlighting: 'خاموش کردن برجستهسازی کارتهای اخیر',
typeNameToConfirm: 'نام را برای تأیید تایپ کنید.',
typeTitleToConfirm: 'عنوان را برای تأیید تایپ کنید.',
- unlinkSso_title: 'لغو پیوند SSO',
unsavedChanges: 'تغییرات ذخیره نشده',
uploadFailedFileIsTooBig: 'آپلود ناموفق: فایل خیلی بزرگ است.',
uploadFailedNotEnoughStorageSpace: 'آپلود ناموفق: فضای ذخیرهسازی کافی نیست.',
@@ -508,8 +505,6 @@ export default {
start: 'شروع',
stop: 'توقف',
subscribe: 'مشترک شدن',
- unlinkSso: 'لغو پیوند SSO',
- unlinkSso_title: 'لغو پیوند SSO',
unsubscribe: 'لغو اشتراک',
uploadNewAvatar: 'آپلود آواتار جدید',
uploadNewImage: 'آپلود تصویر جدید',
diff --git a/client/src/locales/fa-IR/login.js b/client/src/locales/fa-IR/login.js
index 6f964f78..4c2f52cb 100644
--- a/client/src/locales/fa-IR/login.js
+++ b/client/src/locales/fa-IR/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'قدرت گرفته از <1>PLANKA1>',
serverConnectionFailed: 'اتصال به سرور ناموفق بود',
unknownError: 'خطای ناشناخته، بعداً دوباره تلاش کنید',
- useSingleSignOn: 'استفاده از ورود یکپارچه',
usernameAlreadyInUse: 'نام کاربری قبلا استفاده شده است',
whoops_title: 'اوه!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'لغو و بستن',
continue: 'ادامه',
- debugSso: 'اشکالزدایی SSO',
goBack: 'بازگشت',
goHome: 'رفتن به خانه',
logIn: 'ورود',
- logInWithSso: 'ورود با SSO',
},
},
};
diff --git a/client/src/locales/fi-FI/core.js b/client/src/locales/fi-FI/core.js
index fffca31b..9f86d9ce 100644
--- a/client/src/locales/fi-FI/core.js
+++ b/client/src/locales/fi-FI/core.js
@@ -85,8 +85,6 @@ export default {
'Haluatko varmasti poistaa tämän ylläpitäjän projektista?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Haluatko varmasti poistaa tämän jäsenen taululta?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Haluatko varmasti poistaa SSO-yhteyden tältä käyttäjältä? Tämä sallii käyttäjän kirjautua sisään salasanalla.',
assignAsOwner_title: 'Aseta omistajaksi',
atLeastOneListMustBePresent: 'Vähintään yksi lista vaaditaan',
attachment: 'Liite',
@@ -335,7 +333,6 @@ export default {
turnOffRecentCardHighlighting: 'Poista uusien korttien korostus',
typeNameToConfirm: 'Kirjoita nimi vahvistaaksesi.',
typeTitleToConfirm: 'Kirjoita otsikko vahvistaaksesi.',
- unlinkSso_title: 'SSO-yhteyden poistaminen',
unsavedChanges: 'Tallentamattomat muutokset',
uploadFailedFileIsTooBig: 'Lataus epäonnistui: tiedosto on liian suuri.',
uploadFailedNotEnoughStorageSpace: 'Lataus epäonnistui: tallennustilaa ei ole tarpeeksi.',
@@ -507,8 +504,6 @@ export default {
start: 'Aloita',
stop: 'Lopeta',
subscribe: 'Tilaa',
- unlinkSso: 'Poista SSO-yhteys',
- unlinkSso_title: 'Poista SSO-yhteys',
unsubscribe: 'Peru tilaus',
uploadNewAvatar: 'Lataa uusi avatar',
uploadNewImage: 'Lataa uusi kuva',
diff --git a/client/src/locales/fi-FI/login.js b/client/src/locales/fi-FI/login.js
index 50bcff10..a810f78f 100644
--- a/client/src/locales/fi-FI/login.js
+++ b/client/src/locales/fi-FI/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Käyttää <1>PLANKAa1>',
serverConnectionFailed: 'Yhteys palvelimeen epäonnistui',
unknownError: 'Tuntematon virhe, yritä myöhemmin uudelleen',
- useSingleSignOn: 'Käytä kertakirjautumista',
usernameAlreadyInUse: 'Käyttäjänimi on jo käytössä',
whoops_title: 'Hups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Peruuta ja sulje',
continue: 'Jatka',
- debugSso: 'Korjaa SSO-virheitä',
goBack: 'Takaisin',
goHome: 'Kotiin',
logIn: 'Kirjaudu sisään',
- logInWithSso: 'Kirjaudu SSO:lla',
},
},
};
diff --git a/client/src/locales/fr-FR/core.js b/client/src/locales/fr-FR/core.js
index d6370b14..9e709e63 100644
--- a/client/src/locales/fr-FR/core.js
+++ b/client/src/locales/fr-FR/core.js
@@ -91,8 +91,6 @@ export default {
'Êtes-vous sûr de vouloir supprimer ce responsable du projet ?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Êtes-vous sûr de vouloir supprimer ce membre du tableau ?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- "Êtes-vous sûr de vouloir dissocier le SSO de cet utilisateur ? Cela permettra à l'utilisateur de se connecter avec un mot de passe.",
assignAsOwner_title: 'Assigner comme propriétaire',
atLeastOneListMustBePresent: 'Au moins une liste doit être présente',
attachment: 'Pièce jointe',
@@ -344,7 +342,6 @@ export default {
turnOffRecentCardHighlighting: 'Désactiver la mise en évidence des cartes récentes',
typeNameToConfirm: 'Saissir le nom pour confirmer.',
typeTitleToConfirm: 'Saisir le titre pour confirmer.',
- unlinkSso_title: 'Dissociation du SSO',
unsavedChanges: 'Modifications non enregistrées',
uploadFailedFileIsTooBig: 'Échec du téléchargement : fichier trop volumineux.',
uploadFailedNotEnoughStorageSpace:
@@ -512,8 +509,6 @@ export default {
start: 'Commencer',
stop: 'Arrêter',
subscribe: "S'abonner",
- unlinkSso: 'Dissocier le SSO',
- unlinkSso_title: 'Dissocier le SSO',
unsubscribe: 'Se désabonner',
uploadNewAvatar: 'Télécharger un nouvel avatar',
uploadNewImage: 'Télécharger une nouvelle image',
diff --git a/client/src/locales/fr-FR/login.js b/client/src/locales/fr-FR/login.js
index d00cc870..d81b1137 100644
--- a/client/src/locales/fr-FR/login.js
+++ b/client/src/locales/fr-FR/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Propulsé par <1>PLANKA1>',
serverConnectionFailed: 'Échec de la connexion au serveur',
unknownError: 'Erreur inconnue, réessayez plus tard',
- useSingleSignOn: "Utiliser l'authentification unique",
usernameAlreadyInUse: "Nom d'utilisateur déjà utilisé",
whoops_title: 'Oups !',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Annuler et fermer',
continue: 'Continuer',
- debugSso: 'Déboguer le SSO',
goBack: 'Retour',
goHome: "Aller à l'accueil",
logIn: 'Se connecter',
- logInWithSso: "Se connecter avec l'authentification unique",
},
},
};
diff --git a/client/src/locales/hu-HU/core.js b/client/src/locales/hu-HU/core.js
index 7f8860b7..ddab353a 100644
--- a/client/src/locales/hu-HU/core.js
+++ b/client/src/locales/hu-HU/core.js
@@ -81,8 +81,6 @@ export default {
areYouSureYouWantToRemoveThisManagerFromProject:
'Biztosan eltávolítja ezt a menedzsert a projektből?',
areYouSureYouWantToRemoveThisMemberFromBoard: 'Biztosan eltávolítja ezt a tagot a tábláról?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Biztosan le szeretné választani az SSO-t ettől a felhasználótól? Ez lehetővé teszi a felhasználó számára, hogy jelszóval jelentkezzen be.',
assignAsOwner_title: 'Hozzárendelés tulajdonosnak',
atLeastOneListMustBePresent: 'Legalább egy lista szükséges.',
attachment: 'Melléklet',
@@ -331,7 +329,6 @@ export default {
turnOffRecentCardHighlighting: 'Legutóbb módosítótt kártyák kiemelésének kikapcsolása',
typeNameToConfirm: 'Írja be a nevet a megerősítéshez.',
typeTitleToConfirm: 'Írja be a címet a megerősítéshez.',
- unlinkSso_title: 'SSO leválasztása',
unsavedChanges: 'Mentetlen változtatások',
uploadFailedFileIsTooBig: 'Feltöltési hiba: a fájl túl nagy.',
uploadFailedNotEnoughStorageSpace: 'Feltöltési hiba: nincs elég szabad tárhely.',
@@ -506,8 +503,6 @@ export default {
start: 'Indítás',
stop: 'Megállítás',
subscribe: 'Feliratkozás',
- unlinkSso: 'SSO leválasztása',
- unlinkSso_title: 'SSO leválasztása',
unsubscribe: 'Leiratkozás',
uploadNewAvatar: 'Új avatar feltöltése',
uploadNewImage: 'Új kép feltöltése',
diff --git a/client/src/locales/hu-HU/login.js b/client/src/locales/hu-HU/login.js
index 0717344f..4a61a31f 100644
--- a/client/src/locales/hu-HU/login.js
+++ b/client/src/locales/hu-HU/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Működteti a <1>PLANKA1>',
serverConnectionFailed: 'A szerverkapcsolat sikertelen',
unknownError: 'Ismeretlen hiba, próbáld meg később újra',
- useSingleSignOn: 'Egyszeri bejelentkezés használata',
usernameAlreadyInUse: 'A felhasználónév már használatban van',
whoops_title: 'Hoppá!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Mégse és bezárás',
continue: 'Folytatás',
- debugSso: 'SSO hibakeresése',
goBack: 'Vissza',
goHome: 'Kezdőlapra',
logIn: 'Belépés',
- logInWithSso: 'Belépés SSO-val',
},
},
};
diff --git a/client/src/locales/id-ID/core.js b/client/src/locales/id-ID/core.js
index 860aed41..c77a8337 100644
--- a/client/src/locales/id-ID/core.js
+++ b/client/src/locales/id-ID/core.js
@@ -88,8 +88,6 @@ export default {
'Apakah anda ingin menghapus manajer ini dari papan ini?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Apakah anda ingin menghapus anggota ini dari papan ini?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Apakah Anda yakin ingin memutuskan tautan SSO dari pengguna ini? Ini akan memungkinkan pengguna untuk masuk dengan kata sandi.',
assignAsOwner_title: 'Tetapkan sebagai pemilik',
atLeastOneListMustBePresent: 'Setidaknya satu daftar harus ada',
attachment: 'Lampiran',
@@ -339,7 +337,6 @@ export default {
turnOffRecentCardHighlighting: 'Matikan penyorotan kartu terbaru',
typeNameToConfirm: 'Ketik nama untuk mengonfirmasi.',
typeTitleToConfirm: 'Ketik judul untuk mengonfirmasi.',
- unlinkSso_title: 'Pemutusan tautan SSO',
unsavedChanges: 'Perubahan yang belum disimpan',
uploadFailedFileIsTooBig: 'Unggahan gagal - file terlalu besar.',
uploadFailedNotEnoughStorageSpace: 'Unggahan gagal - ruang penyimpanan tidak cukup.',
@@ -507,8 +504,6 @@ export default {
start: 'Mulai',
stop: 'Berhenti',
subscribe: 'Berlanggan',
- unlinkSso: 'Putuskan tautan SSO',
- unlinkSso_title: 'Putuskan tautan SSO',
unsubscribe: 'Berhenti berlangganan',
uploadNewAvatar: 'Unggah avatar baru',
uploadNewImage: 'Unggah gambar baru',
diff --git a/client/src/locales/id-ID/login.js b/client/src/locales/id-ID/login.js
index de5cd30e..9810c4df 100644
--- a/client/src/locales/id-ID/login.js
+++ b/client/src/locales/id-ID/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Didukung oleh <1>PLANKA1>',
serverConnectionFailed: 'Koneksi server gagal',
unknownError: 'Kesalahan tidak diketahui, coba lagi nanti.',
- useSingleSignOn: 'Gunakan single sign-on',
usernameAlreadyInUse: 'Username telah digunakan',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Batal dan tutup',
continue: 'Lanjutkan',
- debugSso: 'Debug SSO',
goBack: 'Kembali',
goHome: 'Ke beranda',
logIn: 'Masuk',
- logInWithSso: 'Masuk dengan SSO',
},
},
};
diff --git a/client/src/locales/it-IT/core.js b/client/src/locales/it-IT/core.js
index 277bb826..825e4680 100644
--- a/client/src/locales/it-IT/core.js
+++ b/client/src/locales/it-IT/core.js
@@ -88,8 +88,6 @@ export default {
'Sei sicuro di voler rimuovere questo amministratore dal progetto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Sei sicuro di voler rimuovere questo membro dalla bacheca?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- "Sei sicuro di voler scollegare SSO da questo utente? Questo permetterà all'utente di accedere con una password.",
assignAsOwner_title: 'Assegna come proprietario',
atLeastOneListMustBePresent: 'Deve essere presente almeno una lista',
attachment: 'Allegato',
@@ -341,7 +339,6 @@ export default {
turnOffRecentCardHighlighting: "Disattiva l'evidenziazione delle scheda recenti",
typeNameToConfirm: 'Digita il nome per confermare.',
typeTitleToConfirm: 'Digita il titolo per confermare.',
- unlinkSso_title: 'Scollegamento SSO',
unsavedChanges: 'Modifiche non salvate',
uploadFailedFileIsTooBig: 'Caricamento fallito: il file è troppo grande.',
uploadFailedNotEnoughStorageSpace:
@@ -510,8 +507,6 @@ export default {
start: 'Inizio',
stop: 'Interrompi',
subscribe: 'Iscriviti',
- unlinkSso: 'Scollega SSO',
- unlinkSso_title: 'Scollega SSO',
unsubscribe: 'Annulla iscrizione',
uploadNewAvatar: 'Carica nuovo avatar',
uploadNewImage: 'Carica nuova immagine',
diff --git a/client/src/locales/it-IT/login.js b/client/src/locales/it-IT/login.js
index 937fe8fc..920da6e9 100644
--- a/client/src/locales/it-IT/login.js
+++ b/client/src/locales/it-IT/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Connesione al server fallita',
unknownError: 'Errore sconosciuto, prova ancora',
- useSingleSignOn: 'Accedi con SSO',
usernameAlreadyInUse: 'Username già in uso',
whoops_title: 'Ops!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Annulla e chiudi',
continue: 'Continua',
- debugSso: 'Debug SSO',
goBack: 'Torna indietro',
goHome: 'Vai alla home',
logIn: 'Accedi',
- logInWithSso: 'Accedi con SSO',
},
},
};
diff --git a/client/src/locales/ja-JP/core.js b/client/src/locales/ja-JP/core.js
index 74564ab2..5ca55918 100644
--- a/client/src/locales/ja-JP/core.js
+++ b/client/src/locales/ja-JP/core.js
@@ -85,8 +85,6 @@ export default {
'このマネージャーをプロジェクトから外してもよろしいですか?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'このメンバーをボードから外してもよろしいですか?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'このユーザーからSSOのリンクを解除してもよろしいですか?これにより、ユーザーはパスワードでログインできるようになります。',
assignAsOwner_title: 'オーナーとして割り当て',
atLeastOneListMustBePresent: '少なくとも1つのリストが必要です',
attachment: '添付ファイル',
@@ -334,7 +332,6 @@ export default {
turnOffRecentCardHighlighting: '最近のカードのハイライトをオフにする',
typeNameToConfirm: '確認のため名前を入力してください。',
typeTitleToConfirm: '確認のためタイトルを入力してください。',
- unlinkSso_title: 'SSOのリンク解除',
unsavedChanges: '未保存の変更',
uploadFailedFileIsTooBig: 'アップロード失敗 - ファイルが大きすぎます。',
uploadFailedNotEnoughStorageSpace: 'アップロード失敗 - ストレージ容量が不足しています。',
@@ -504,8 +501,6 @@ export default {
start: 'スタート',
stop: 'ストップ',
subscribe: '購読',
- unlinkSso: 'SSOのリンクを解除',
- unlinkSso_title: 'SSOのリンクを解除',
unsubscribe: '購読解除',
uploadNewAvatar: '新しいアバターをアップロード',
uploadNewImage: '新しい画像をアップロード',
diff --git a/client/src/locales/ja-JP/login.js b/client/src/locales/ja-JP/login.js
index acfdfa1d..9c063adc 100644
--- a/client/src/locales/ja-JP/login.js
+++ b/client/src/locales/ja-JP/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: '<1>PLANKA1>で動作',
serverConnectionFailed: 'サーバーの接続に失敗',
unknownError: '不明なエラーです。後でもう一度試してください。',
- useSingleSignOn: 'SSOを使用',
usernameAlreadyInUse: 'ユーザー名は既に使われています',
whoops_title: 'おっと!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'キャンセルして閉じる',
continue: '続行',
- debugSso: 'SSOをデバッグ',
goBack: '戻る',
goHome: 'ホームへ',
logIn: 'ログイン',
- logInWithSso: 'SSOでログイン',
},
},
};
diff --git a/client/src/locales/ko-KR/core.js b/client/src/locales/ko-KR/core.js
index 5896435e..bf8f0d22 100644
--- a/client/src/locales/ko-KR/core.js
+++ b/client/src/locales/ko-KR/core.js
@@ -79,8 +79,6 @@ export default {
'이 API 키를 재생성하시겠습니까? 이전 키는 더 이상 작동하지 않습니다.',
areYouSureYouWantToRemoveThisManagerFromProject: '이 관리자를 프로젝트에서 제거하시겠습니까?',
areYouSureYouWantToRemoveThisMemberFromBoard: '이 멤버를 보드에서 제거하시겠습니까?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- '이 사용자로부터 SSO 연결을 해제하시겠습니까? 이렇게 하면 사용자가 비밀번호로 로그인할 수 있습니다.',
assignAsOwner_title: '소유자로 지정',
atLeastOneListMustBePresent: '최소 하나의 목록이 있어야 합니다',
attachment: '첨부 파일',
@@ -329,7 +327,6 @@ export default {
turnOffRecentCardHighlighting: '최근 카드 강조 표시 끄기',
typeNameToConfirm: '확인하려면 이름을 입력하세요.',
typeTitleToConfirm: '확인하려면 제목을 입력하세요.',
- unlinkSso_title: 'SSO 연결 해제',
unsavedChanges: '저장되지 않은 변경사항',
uploadFailedFileIsTooBig: '업로드 실패: 파일이 너무 큽니다.',
uploadFailedNotEnoughStorageSpace: '업로드 실패: 저장 공간이 부족합니다.',
@@ -501,8 +498,6 @@ export default {
start: '시작',
stop: '중지',
subscribe: '구독',
- unlinkSso: 'SSO 연결 해제',
- unlinkSso_title: 'SSO 연결 해제',
unsubscribe: '구독 취소',
uploadNewAvatar: '새 아바타 업로드',
uploadNewImage: '새 이미지 업로드',
diff --git a/client/src/locales/ko-KR/login.js b/client/src/locales/ko-KR/login.js
index 98ad22ac..aa2123f9 100644
--- a/client/src/locales/ko-KR/login.js
+++ b/client/src/locales/ko-KR/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: '<1>PLANKA1>로 구동됨',
serverConnectionFailed: '서버 연결 실패',
unknownError: '알 수 없는 오류, 나중에 다시 시도하세요',
- useSingleSignOn: 'Single Sign-On(SSO) 사용',
usernameAlreadyInUse: '이미 사용 중인 사용자 이름',
whoops_title: '앗!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: '취소 후 닫기',
continue: '계속',
- debugSso: 'SSO 디버그',
goBack: '뒤로 가기',
goHome: '홈으로 가기',
logIn: '로그인',
- logInWithSso: 'SSO로 로그인',
},
},
};
diff --git a/client/src/locales/nl-NL/core.js b/client/src/locales/nl-NL/core.js
index a9235950..ef974a2d 100644
--- a/client/src/locales/nl-NL/core.js
+++ b/client/src/locales/nl-NL/core.js
@@ -88,8 +88,6 @@ export default {
'Weet u zeker dat u deze manager uit het project wilt verwijderen?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Weet u zeker dat u dit lid uit het bord wilt verwijderen?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Weet je zeker dat je SSO wilt ontkoppelen van deze gebruiker? Dit stelt de gebruiker in staat om in te loggen met een wachtwoord.',
assignAsOwner_title: 'Toewijzen als eigenaar',
atLeastOneListMustBePresent: 'Er moet ten minste één lijst aanwezig zijn',
attachment: 'Bijlage',
@@ -339,7 +337,6 @@ export default {
turnOffRecentCardHighlighting: 'Recente kaartmarkering uitschakelen',
typeNameToConfirm: 'Typ naam om te bevestigen.',
typeTitleToConfirm: 'Typ titel om te bevestigen.',
- unlinkSso_title: 'SSO ontkoppelen',
unsavedChanges: 'Niet-opgeslagen wijzigingen',
uploadFailedFileIsTooBig: 'Upload mislukt: bestand is te groot.',
uploadFailedNotEnoughStorageSpace: 'Upload mislukt: niet genoeg opslagruimte.',
@@ -510,8 +507,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Abonneren',
- unlinkSso: 'SSO ontkoppelen',
- unlinkSso_title: 'SSO ontkoppelen',
unsubscribe: 'Afmelden',
uploadNewAvatar: 'Nieuwe avatar uploaden',
uploadNewImage: 'Nieuwe afbeelding uploaden',
diff --git a/client/src/locales/nl-NL/login.js b/client/src/locales/nl-NL/login.js
index eea6ea74..ddc8a619 100644
--- a/client/src/locales/nl-NL/login.js
+++ b/client/src/locales/nl-NL/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Mogelijk gemaakt door <1>PLANKA1>',
serverConnectionFailed: 'Verbinding met de server mislukt',
unknownError: 'Onbekende fout, probeer het later opnieuw',
- useSingleSignOn: 'Gebruik single sign-on',
usernameAlreadyInUse: 'Gebruikersnaam is al in gebruik',
whoops_title: 'Oeps!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Annuleren en sluiten',
continue: 'Doorgaan',
- debugSso: 'SSO debuggen',
goBack: 'Terug gaan',
goHome: 'Naar startpagina',
logIn: 'Inloggen',
- logInWithSso: 'Inloggen met SSO',
},
},
};
diff --git a/client/src/locales/pl-PL/core.js b/client/src/locales/pl-PL/core.js
index 09e6b672..4707fe70 100644
--- a/client/src/locales/pl-PL/core.js
+++ b/client/src/locales/pl-PL/core.js
@@ -87,8 +87,6 @@ export default {
'Jesteś pewien że chcesz usunąć tego zarządcę z projektu?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Jesteś pewien że chcesz usunąć tego członka z tablicy?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Czy na pewno chcesz odłączyć SSO od tego użytkownika? Pozwoli to użytkownikowi zalogować się przy użyciu hasła.',
assignAsOwner_title: 'Przypisz jako właściciela',
atLeastOneListMustBePresent: 'Przynajmniej jedna lista musi istnieć',
attachment: 'Załącznik',
@@ -338,7 +336,6 @@ export default {
turnOffRecentCardHighlighting: 'Wyłącz podświetlanie nowych kart',
typeNameToConfirm: 'Wpisz nazwę aby potwierdzić.',
typeTitleToConfirm: 'Wpisz tytuł aby potwierdzić.',
- unlinkSso_title: 'Odłączanie SSO',
unsavedChanges: 'Niezapisane zmiany',
uploadFailedFileIsTooBig: 'Przesyłanie nie powiodło się: plik jest za duży.',
uploadFailedNotEnoughStorageSpace: 'Przesyłanie nie powiodło się: za mało miejsca na dysku.',
@@ -507,8 +504,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Subskrybuj',
- unlinkSso: 'Odłącz SSO',
- unlinkSso_title: 'Odłącz SSO',
unsubscribe: 'Odsubskrybuj',
uploadNewAvatar: 'Wgraj nowy awatar',
uploadNewImage: 'Wgraj nowy obraz',
diff --git a/client/src/locales/pl-PL/login.js b/client/src/locales/pl-PL/login.js
index 4cd4d5a2..660ad7e6 100644
--- a/client/src/locales/pl-PL/login.js
+++ b/client/src/locales/pl-PL/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Błąd połączenia z serwerem',
unknownError: 'Nieznany błąd, spróbuj ponownie później',
- useSingleSignOn: 'Użyj logowania SSO',
usernameAlreadyInUse: 'Nazwa użytkownika nie jest dostępna',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Anuluj i zamknij',
continue: 'Kontynuuj',
- debugSso: 'Debuguj SSO',
goBack: 'Wróć',
goHome: 'Idź do domu',
logIn: 'Zaloguj',
- logInWithSso: 'Zaloguj z SSO',
},
},
};
diff --git a/client/src/locales/pt-BR/core.js b/client/src/locales/pt-BR/core.js
index ad1460d3..451f34f1 100644
--- a/client/src/locales/pt-BR/core.js
+++ b/client/src/locales/pt-BR/core.js
@@ -89,8 +89,6 @@ export default {
'Tem certeza de que deseja remover este gerente do projeto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Tem certeza de que deseja remover este membro do quadro?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Tem certeza de que deseja desvincular o SSO deste usuário? Isso permitirá que o usuário faça login com uma senha.',
assignAsOwner_title: 'Atribuir como proprietário',
atLeastOneListMustBePresent: 'Pelo menos uma lista deve estar presente',
attachment: 'Anexo',
@@ -342,7 +340,6 @@ export default {
turnOffRecentCardHighlighting: 'Desativar destaque de cartões recentes',
typeNameToConfirm: 'Digite o nome para confirmar.',
typeTitleToConfirm: 'Digite o título para confirmar.',
- unlinkSso_title: 'Desvinculação de SSO',
unsavedChanges: 'Alterações não salvas',
uploadFailedFileIsTooBig: 'Falha no upload: arquivo muito grande.',
uploadFailedNotEnoughStorageSpace: 'Falha no upload: espaço de armazenamento insuficiente.',
@@ -510,8 +507,6 @@ export default {
start: 'Iniciar',
stop: 'Parar',
subscribe: 'Inscrever-se',
- unlinkSso: 'Desvincular SSO',
- unlinkSso_title: 'Desvincular SSO',
unsubscribe: 'Cancelar inscrição',
uploadNewAvatar: 'Enviar novo avatar',
uploadNewImage: 'Enviar nova imagem',
diff --git a/client/src/locales/pt-BR/login.js b/client/src/locales/pt-BR/login.js
index 25365b79..6dd6d7a8 100644
--- a/client/src/locales/pt-BR/login.js
+++ b/client/src/locales/pt-BR/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Desenvolvido por <1>PLANKA1>',
serverConnectionFailed: 'Falha na conexão com o servidor',
unknownError: 'Erro desconhecido, tente novamente mais tarde',
- useSingleSignOn: 'Usar login único',
usernameAlreadyInUse: 'Nome de usuário já está em uso',
whoops_title: 'Ops!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Cancelar e fechar',
continue: 'Continuar',
- debugSso: 'Depurar SSO',
goBack: 'Voltar',
goHome: 'Ir para início',
logIn: 'Entrar',
- logInWithSso: 'Entrar com SSO',
},
},
};
diff --git a/client/src/locales/pt-PT/core.js b/client/src/locales/pt-PT/core.js
index 256e72d8..fa64252b 100644
--- a/client/src/locales/pt-PT/core.js
+++ b/client/src/locales/pt-PT/core.js
@@ -91,8 +91,6 @@ export default {
'Tem a certeza de que pretende remover este gestor do projeto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Tem a certeza de que pretende remover este membro do quadro?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Tem a certeza de que pretende desvincular o SSO deste utilizador? Isto permitirá que o utilizador inicie sessão com uma palavra-passe.',
assignAsOwner_title: 'Atribuir como proprietário',
atLeastOneListMustBePresent: 'Pelo menos uma lista deve estar presente',
attachment: 'Anexo',
@@ -344,7 +342,6 @@ export default {
turnOffRecentCardHighlighting: 'Desativar destaque de cartões recentes',
typeNameToConfirm: 'Digite o nome para confirmar.',
typeTitleToConfirm: 'Digite o título para confirmar.',
- unlinkSso_title: 'Desvinculação de SSO',
unsavedChanges: 'Alterações não guardadas',
uploadFailedFileIsTooBig: 'Carregamento falhado - ficheiro demasiado grande.',
uploadFailedNotEnoughStorageSpace:
@@ -513,8 +510,6 @@ export default {
start: 'Iniciar',
stop: 'Parar',
subscribe: 'Subscrever',
- unlinkSso: 'Desvincular SSO',
- unlinkSso_title: 'Desvincular SSO',
unsubscribe: 'Cancelar subscrição',
uploadNewAvatar: 'Carregar novo avatar',
uploadNewImage: 'Carregar nova imagem',
diff --git a/client/src/locales/pt-PT/login.js b/client/src/locales/pt-PT/login.js
index 3c419d13..e3f4b736 100644
--- a/client/src/locales/pt-PT/login.js
+++ b/client/src/locales/pt-PT/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Desenvolvido por <1>PLANKA1>',
serverConnectionFailed: 'Falha na ligação ao servidor',
unknownError: 'Erro desconhecido, tente novamente mais tarde',
- useSingleSignOn: 'Utilizar início de sessão único',
usernameAlreadyInUse: 'Nome de utilizador já está em uso',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Cancelar e fechar',
continue: 'Continuar',
- debugSso: 'Depurar SSO',
goBack: 'Voltar',
goHome: 'Ir para início',
logIn: 'Iniciar sessão',
- logInWithSso: 'Iniciar sessão com SSO',
},
},
};
diff --git a/client/src/locales/ro-RO/core.js b/client/src/locales/ro-RO/core.js
index 4308a2b0..cc5d4b7f 100644
--- a/client/src/locales/ro-RO/core.js
+++ b/client/src/locales/ro-RO/core.js
@@ -85,8 +85,6 @@ export default {
'Sigur doriți să eliminați acest manager din proiect?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Sigur doriți să eliminați acest membru din consiliu?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Sigur doriți să deconectați SSO de la acest utilizator? Acest lucru va permite utilizatorului să se conecteze cu o parolă.',
assignAsOwner_title: 'Atribuie ca proprietar',
atLeastOneListMustBePresent: 'Cel puțin o listă trebuie să fie prezentă',
attachment: 'Atașament',
@@ -337,7 +335,6 @@ export default {
turnOffRecentCardHighlighting: 'Oprește evidențierea cardurilor recente',
typeNameToConfirm: 'Tastează numele pentru confirmare.',
typeTitleToConfirm: 'Tastează titlul pentru confirmare.',
- unlinkSso_title: 'Deconectarea SSO',
unsavedChanges: 'Modificări nesalvate',
uploadFailedFileIsTooBig: 'Încărcarea a eșuat: fișierul este prea mare.',
uploadFailedNotEnoughStorageSpace: 'Încărcarea a eșuat: spațiu de stocare insuficient.',
@@ -507,8 +504,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Abonati-va',
- unlinkSso: 'Deconectează SSO',
- unlinkSso_title: 'Deconectează SSO',
unsubscribe: 'Dezabonați-vă',
uploadNewAvatar: 'Încărcați un avatar nou',
uploadNewImage: 'Încărcați o nouă imagine',
diff --git a/client/src/locales/ro-RO/login.js b/client/src/locales/ro-RO/login.js
index 7b25cb6f..d62ac745 100644
--- a/client/src/locales/ro-RO/login.js
+++ b/client/src/locales/ro-RO/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Susținut de <1>PLANKA1>',
serverConnectionFailed: 'Conexiunea la server a eșuat',
unknownError: 'Eroarea necunoscuta, mai incercați',
- useSingleSignOn: 'Folosiți autentificarea unica',
usernameAlreadyInUse: 'Nume utilizator deja exista',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Anulează și închide',
continue: 'Continuă',
- debugSso: 'Depanează SSO',
goBack: 'Înapoi',
goHome: 'Acasă',
logIn: 'Autentificarea',
- logInWithSso: 'Autentificarea cu SSO',
},
},
};
diff --git a/client/src/locales/ru-RU/core.js b/client/src/locales/ru-RU/core.js
index 9965d9a1..a5a6a1e5 100644
--- a/client/src/locales/ru-RU/core.js
+++ b/client/src/locales/ru-RU/core.js
@@ -89,8 +89,6 @@ export default {
'Вы уверены, что хотите удалить этого менеджера из проекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Вы уверены, что хотите удалить этого участника из доски?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Вы уверены, что хотите отвязать SSO от этого пользователя? Это позволит пользователю входить с помощью пароля.',
assignAsOwner_title: 'Назначить владельцем',
atLeastOneListMustBePresent: 'Должен быть хотя бы один список',
attachment: 'Вложение',
@@ -340,7 +338,6 @@ export default {
turnOffRecentCardHighlighting: 'Выключить подсветку последних карточек',
typeNameToConfirm: 'Введите имя для подтверждения.',
typeTitleToConfirm: 'Введите название для подтверждения.',
- unlinkSso_title: 'Отвязка SSO',
unsavedChanges: 'Несохранённые изменения',
uploadFailedFileIsTooBig: 'Загрузка не удалась: файл слишком большой.',
uploadFailedNotEnoughStorageSpace: 'Загрузка не удалась: недостаточно места для хранения.',
@@ -509,8 +506,6 @@ export default {
start: 'Начать',
stop: 'Остановить',
subscribe: 'Подписаться',
- unlinkSso: 'Отвязать SSO',
- unlinkSso_title: 'Отвязать SSO',
unsubscribe: 'Отписаться',
uploadNewAvatar: 'Загрузить новый аватар',
uploadNewImage: 'Загрузить новое изображение',
diff --git a/client/src/locales/ru-RU/login.js b/client/src/locales/ru-RU/login.js
index 7a269993..9895db42 100644
--- a/client/src/locales/ru-RU/login.js
+++ b/client/src/locales/ru-RU/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Powered by <1>PLANKA1>',
serverConnectionFailed: 'Не могу подключиться к серверу',
unknownError: 'Что-то пошло не так, попробуйте позже',
- useSingleSignOn: 'Используйте единый вход',
usernameAlreadyInUse: 'Имя пользователя уже занято',
whoops_title: 'Упс!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Отменить и закрыть',
continue: 'Продолжить',
- debugSso: 'Отладить SSO',
goBack: 'Назад',
goHome: 'На главную',
logIn: 'Войти',
- logInWithSso: 'Войти с помощью единого входа',
},
},
};
diff --git a/client/src/locales/sk-SK/core.js b/client/src/locales/sk-SK/core.js
index 9e235ead..4e48eaea 100644
--- a/client/src/locales/sk-SK/core.js
+++ b/client/src/locales/sk-SK/core.js
@@ -83,8 +83,6 @@ export default {
'Naozaj chcete zmazať daného správcu tohto projektu?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Naozaj chcete odstrániť tohoto člena z tabule?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Naozaj chcete odpojiť SSO od tohto používateľa? Tým umožníte používateľovi prihlásiť sa pomocou hesla.',
assignAsOwner_title: 'Prideliť ako vlastníka',
atLeastOneListMustBePresent: 'Musí byť prítomný aspoň jeden zoznam',
attachment: 'Príloha',
@@ -332,7 +330,6 @@ export default {
turnOffRecentCardHighlighting: 'Vypnúť zvýrazňovanie nedávnych kariet',
typeNameToConfirm: 'Zadajte meno na potvrdenie.',
typeTitleToConfirm: 'Zadajte názov na potvrdenie.',
- unlinkSso_title: 'Odpojenie SSO',
unsavedChanges: 'Neuložené zmeny',
uploadFailedFileIsTooBig: 'Nahrávanie zlyhalo: súbor je príliš veľký.',
uploadFailedNotEnoughStorageSpace: 'Nahrávanie zlyhalo: nedostatok úložného priestoru.',
@@ -500,8 +497,6 @@ export default {
start: 'Start',
stop: 'Stop',
subscribe: 'Odoberať',
- unlinkSso: 'Odpojiť SSO',
- unlinkSso_title: 'Odpojiť SSO',
unsubscribe: 'Neodoberať',
uploadNewAvatar: 'Nahrať nový avatar',
uploadNewImage: 'Nahrať nový obrázok',
diff --git a/client/src/locales/sk-SK/login.js b/client/src/locales/sk-SK/login.js
index 24dee941..2c56122a 100644
--- a/client/src/locales/sk-SK/login.js
+++ b/client/src/locales/sk-SK/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Poháňané <1>PLANKA1>',
serverConnectionFailed: 'Pripojenie k serveru zlyhalo',
unknownError: 'Neznáma chyba, skúste to neskôr',
- useSingleSignOn: 'Použiť jednotné prihlásenie',
usernameAlreadyInUse: 'Používateľské meno je zabrané',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Zrušiť a zavrieť',
continue: 'Pokračovať',
- debugSso: 'Ladiť SSO',
goBack: 'Ísť späť',
goHome: 'Ísť domov',
logIn: 'Prihlásiť sa',
- logInWithSso: 'Prihlásiť sa cez SSO',
},
},
};
diff --git a/client/src/locales/sr-Cyrl-RS/core.js b/client/src/locales/sr-Cyrl-RS/core.js
index 05c95705..51a40954 100644
--- a/client/src/locales/sr-Cyrl-RS/core.js
+++ b/client/src/locales/sr-Cyrl-RS/core.js
@@ -87,8 +87,6 @@ export default {
'Да ли заиста желите да уклоните овог руководиоца из овог пројекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Да ли заиста желите да уклоните овог члана из ове табле?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Да ли сте сигурни да желите да одвојите SSO са овог корисника? Ово ће омогућити кориснику да се пријави помоћу лозинке.',
assignAsOwner_title: 'Додели као власника',
atLeastOneListMustBePresent: 'Мора постојати најмање једна листа',
attachment: 'Прилог',
@@ -335,7 +333,6 @@ export default {
turnOffRecentCardHighlighting: 'Искључи истицање скорашњих картица',
typeNameToConfirm: 'Укуцај име за потврду.',
typeTitleToConfirm: 'Укуцај наслов за потврду.',
- unlinkSso_title: 'Одвајање SSO',
unsavedChanges: 'Несачуване промене',
uploadFailedFileIsTooBig: 'Слање неуспешно: датотека је превелика.',
uploadFailedNotEnoughStorageSpace: 'Слање неуспешно: нема довољно простора за складиштење.',
@@ -503,8 +500,6 @@ export default {
start: 'Почни',
stop: 'Заустави',
subscribe: 'Претплати се',
- unlinkSso: 'Одвоји SSO',
- unlinkSso_title: 'Одвоји SSO',
unsubscribe: 'Укини претплату',
uploadNewAvatar: 'Постави нови аватар',
uploadNewImage: 'Постави нову слику',
diff --git a/client/src/locales/sr-Cyrl-RS/login.js b/client/src/locales/sr-Cyrl-RS/login.js
index 9c36c7ff..c16c8d1b 100644
--- a/client/src/locales/sr-Cyrl-RS/login.js
+++ b/client/src/locales/sr-Cyrl-RS/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Покреће <1>PLANKA1>',
serverConnectionFailed: 'Неуспешна конекција са сервером',
unknownError: 'Непозната грешка, покушајте поново касније',
- useSingleSignOn: 'Користи универзалну пријаву',
usernameAlreadyInUse: 'Корисничко име је већ у употреби',
whoops_title: 'Упс!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Откажи и затвори',
continue: 'Настави',
- debugSso: 'Дебагуј SSO',
goBack: 'Назад',
goHome: 'Иди кући',
logIn: 'Пријава',
- logInWithSso: 'Пријава са УП',
},
},
};
diff --git a/client/src/locales/sr-Latn-RS/core.js b/client/src/locales/sr-Latn-RS/core.js
index d6a8754b..5648fc52 100644
--- a/client/src/locales/sr-Latn-RS/core.js
+++ b/client/src/locales/sr-Latn-RS/core.js
@@ -88,8 +88,6 @@ export default {
'Da li zaista želite da uklonite ovog rukovodioca iz ovog projekta?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Da li zaista želite da uklonite ovog člana iz ove table?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Da li ste sigurni da želite da odvojite SSO sa ovog korisnika? Ovo će omogućiti korisniku da se prijavi pomoću lozinke.',
assignAsOwner_title: 'Dodeli kao vlasnika',
atLeastOneListMustBePresent: 'Mora postojati najmanje jedna lista',
attachment: 'Prilog',
@@ -336,7 +334,6 @@ export default {
turnOffRecentCardHighlighting: 'Isključi isticanje skorašnjih kartica',
typeNameToConfirm: 'Ukucaj ime za potvrdu.',
typeTitleToConfirm: 'Ukucaj naslov za potvrdu.',
- unlinkSso_title: 'Odvajanje SSO',
unsavedChanges: 'Nesačuvane promene',
uploadFailedFileIsTooBig: 'Slanje neuspešno: datoteka je prevelika.',
uploadFailedNotEnoughStorageSpace:
@@ -505,8 +502,6 @@ export default {
start: 'Počni',
stop: 'Zaustavi',
subscribe: 'Pretplati se',
- unlinkSso: 'Odvoji SSO',
- unlinkSso_title: 'Odvoji SSO',
unsubscribe: 'Ukini pretplatu',
uploadNewAvatar: 'Postavi novi avatar',
uploadNewImage: 'Postavi novu sliku',
diff --git a/client/src/locales/sr-Latn-RS/login.js b/client/src/locales/sr-Latn-RS/login.js
index e3446858..531908c2 100644
--- a/client/src/locales/sr-Latn-RS/login.js
+++ b/client/src/locales/sr-Latn-RS/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Pokreće <1>PLANKA1>',
serverConnectionFailed: 'Neuspešna konekcija sa serverom',
unknownError: 'Nepoznata greška, pokušajte ponovo kasnije',
- useSingleSignOn: 'Koristi univerzalnu prijavu',
usernameAlreadyInUse: 'Korisničko ime je već u upotrebi',
whoops_title: 'Ups!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Otkaži i zatvori',
continue: 'Nastavi',
- debugSso: 'Debaguj SSO',
goBack: 'Nazad',
goHome: 'Idi kući',
logIn: 'Prijava',
- logInWithSso: 'Prijava sa UP',
},
},
};
diff --git a/client/src/locales/sv-SE/core.js b/client/src/locales/sv-SE/core.js
index 859052b5..22094341 100644
--- a/client/src/locales/sv-SE/core.js
+++ b/client/src/locales/sv-SE/core.js
@@ -93,8 +93,6 @@ export default {
'Är du säker på att du vill ta bort den här projektledaren från projektet?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Är du säker på att du vill ta bort den här medlemmen från tavlan?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Är du säker på att du vill avlänka SSO från den här användaren? Detta kommer att tillåta användaren att logga in med ett lösenord.',
assignAsOwner_title: 'Tilldela som ägare',
atLeastOneListMustBePresent: 'Minst en lista måste finnas',
attachment: 'Bilaga',
@@ -345,7 +343,6 @@ export default {
turnOffRecentCardHighlighting: 'Stäng av markering av senaste kort',
typeNameToConfirm: 'Skriv namn för att bekräfta.',
typeTitleToConfirm: 'Skriv titel för att bekräfta.',
- unlinkSso_title: 'Avlänkning av SSO',
unsavedChanges: 'Osparade ändringar',
uploadFailedFileIsTooBig: 'Uppladdning misslyckades: filen är för stor.',
uploadFailedNotEnoughStorageSpace:
@@ -514,8 +511,6 @@ export default {
start: 'Starta',
stop: 'Stoppa',
subscribe: 'Prenumerera',
- unlinkSso: 'Avlänka SSO',
- unlinkSso_title: 'Avlänka SSO',
unsubscribe: 'Avprenumerera',
uploadNewAvatar: 'Ladda upp ny avatar',
uploadNewImage: 'Ladda upp ny bild',
diff --git a/client/src/locales/sv-SE/login.js b/client/src/locales/sv-SE/login.js
index 113ea132..791782ad 100644
--- a/client/src/locales/sv-SE/login.js
+++ b/client/src/locales/sv-SE/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Drivs av <1>PLANKA1>',
serverConnectionFailed: 'Server connection failed',
unknownError: 'Okänt fel, försök igen senare',
- useSingleSignOn: 'Använd enkel inloggning',
usernameAlreadyInUse: 'Användarnamnet används redan',
whoops_title: 'Hoppsan!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Avbryt och stäng',
continue: 'Fortsätt',
- debugSso: 'Felsök SSO',
goBack: 'Gå tillbaka',
goHome: 'Gå hem',
logIn: 'Logga in',
- logInWithSso: 'Logga in med SSO',
},
},
};
diff --git a/client/src/locales/tr-TR/core.js b/client/src/locales/tr-TR/core.js
index 99c67da8..f525ab51 100644
--- a/client/src/locales/tr-TR/core.js
+++ b/client/src/locales/tr-TR/core.js
@@ -90,8 +90,6 @@ export default {
'Bu yöneticiyi projeden çıkarmak istediğinizden emin misiniz?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Bu üyeyi panodan çıkarmak istediğinizden emin misiniz?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Bu kullanıcıdan SSO bağlantısını kaldırmak istediğinizden emin misiniz? Bu, kullanıcının şifre ile giriş yapmasına izin verecektir.',
assignAsOwner_title: 'Sahip olarak ata',
atLeastOneListMustBePresent: 'En az bir liste bulunmalıdır',
attachment: 'ek',
@@ -338,7 +336,6 @@ export default {
turnOffRecentCardHighlighting: 'Son kart vurgulamasını kapat',
typeNameToConfirm: 'Onaylamak için adı yazın.',
typeTitleToConfirm: 'Onaylamak için başlığı yazın.',
- unlinkSso_title: 'SSO bağlantısını kaldırma',
unsavedChanges: 'Kaydedilmemiş değişiklikler',
uploadFailedFileIsTooBig: 'Yükleme başarısız: dosya çok büyük.',
uploadFailedNotEnoughStorageSpace: 'Yükleme başarısız: yeterli depolama alanı yok.',
@@ -510,8 +507,6 @@ export default {
start: 'başlat',
stop: 'dur',
subscribe: 'Abone ol',
- unlinkSso: 'SSO bağlantısını kaldır',
- unlinkSso_title: 'SSO bağlantısını kaldır',
unsubscribe: 'Abonelikten çık',
uploadNewAvatar: 'Yeni avatar yükle',
uploadNewImage: 'Yeni resim yükle',
diff --git a/client/src/locales/tr-TR/login.js b/client/src/locales/tr-TR/login.js
index 6121e3cc..8b8acca3 100644
--- a/client/src/locales/tr-TR/login.js
+++ b/client/src/locales/tr-TR/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'PLANKA tarafından desteklenmektedir',
serverConnectionFailed: 'Sunucu bağlantı hatası',
unknownError: 'Bilinmeyen hata, daha sonra tekrar deneyin',
- useSingleSignOn: 'Tek oturum açma kullan',
usernameAlreadyInUse: 'Kullanıcı adı zaten kullanımda',
whoops_title: 'Hata!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'İptal et ve kapat',
continue: 'Devam et',
- debugSso: 'SSO hatalarını ayıkla',
goBack: 'Geri dön',
goHome: 'Ana sayfaya git',
logIn: 'Giriş yap',
- logInWithSso: 'SSO ile giriş yap',
},
},
};
diff --git a/client/src/locales/uk-UA/core.js b/client/src/locales/uk-UA/core.js
index e0d6e58c..30f56c30 100644
--- a/client/src/locales/uk-UA/core.js
+++ b/client/src/locales/uk-UA/core.js
@@ -88,8 +88,6 @@ export default {
'Ви впевнені, що хочете видалити цього менеджера з проекту?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Ви впевнені, що хочете видалити цього учасника з дошки?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- "Ви впевнені, що хочете відв'язати SSO від цього користувача? Це дозволить користувачу входити за допомогою пароля.",
assignAsOwner_title: 'Призначити власником',
atLeastOneListMustBePresent: 'Принаймні один список повинен бути присутнім',
attachment: 'Вкладення',
@@ -337,7 +335,6 @@ export default {
turnOffRecentCardHighlighting: 'Вимкнути підсвічування останніх карток',
typeNameToConfirm: "Введіть ім'я для підтвердження.",
typeTitleToConfirm: 'Введіть назву, щоб підтвердити.',
- unlinkSso_title: "Відв'язка SSO",
unsavedChanges: 'Незбережені зміни',
uploadFailedFileIsTooBig: 'Помилка завантаження: файл занадто великий.',
uploadFailedNotEnoughStorageSpace: 'Помилка завантаження: недостатньо місця для зберігання.',
@@ -505,8 +502,6 @@ export default {
start: 'Почати',
stop: 'Зупинити',
subscribe: 'Підписатися',
- unlinkSso: "Відв'язати SSO",
- unlinkSso_title: "Відв'язати SSO",
unsubscribe: 'Відписатися',
uploadNewAvatar: 'Завантажити новий аватар',
uploadNewImage: 'Завантажити нове зображення',
diff --git a/client/src/locales/uk-UA/login.js b/client/src/locales/uk-UA/login.js
index 3715fd73..44cb0de5 100644
--- a/client/src/locales/uk-UA/login.js
+++ b/client/src/locales/uk-UA/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'Працює на <1>PLANKA1>',
serverConnectionFailed: 'Не вдалося підключитися до сервера',
unknownError: 'Невідома помилка, спробуйте ще раз пізніше',
- useSingleSignOn: 'Використовувати одночасний вхід',
usernameAlreadyInUse: "Ім'я користувача вже використовується",
whoops_title: 'Ой!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Скасувати та закрити',
continue: 'Продовжити',
- debugSso: 'Відлагодити SSO',
goBack: 'Назад',
goHome: 'На головну',
logIn: 'Увійти',
- logInWithSso: 'Увійти за допомогою SSO',
},
},
};
diff --git a/client/src/locales/uz-UZ/core.js b/client/src/locales/uz-UZ/core.js
index 955ab0ed..3f3ef387 100644
--- a/client/src/locales/uz-UZ/core.js
+++ b/client/src/locales/uz-UZ/core.js
@@ -83,8 +83,6 @@ export default {
areYouSureYouWantToRemoveThisManagerFromProject:
"Ushbu boshqaruvchini loyihadan o'chirmoqchimisiz?",
areYouSureYouWantToRemoveThisMemberFromBoard: "Ushbu a'zoni doskadan o'chirmoqchimisiz?",
- areYouSureYouWantToUnlinkSsoFromThisUser:
- "Haqiqatan ham bu foydalanuvchidan SSO bog'lanishini uzishni xohlaysizmi? Bu foydalanuvchiga parol bilan kirishga imkon beradi.",
assignAsOwner_title: 'Egasi sifatida tayinlash',
atLeastOneListMustBePresent: "Kamida bitta ro'yxat bo'lishi kerak",
attachment: 'Ilova',
@@ -333,7 +331,6 @@ export default {
turnOffRecentCardHighlighting: "So'nggi kartalarni ajratib ko'rsatishni o'chirish",
typeNameToConfirm: 'Tasdiqlash uchun nomni kiriting.',
typeTitleToConfirm: 'Tasdiqlash uchun sarlavhani kiriting.',
- unlinkSso_title: "SSO bog'lanishini uzish",
unsavedChanges: "Saqlanmagan o'zgarishlar",
uploadFailedFileIsTooBig: 'Yuklash muvaffaqiyatsiz: fayl juda katta.',
uploadFailedNotEnoughStorageSpace: 'Yuklash muvaffaqiyatsiz: saqlash joyi yetarli emas.',
@@ -503,8 +500,6 @@ export default {
start: 'Boshlash',
stop: "To'xtatish",
subscribe: "Obuna bo'lish",
- unlinkSso: "SSO bog'lanishini uzish",
- unlinkSso_title: "SSO bog'lanishini uzish",
unsubscribe: 'Obunani bekor qilish',
uploadNewAvatar: 'Yangi avatar yuklash',
uploadNewImage: 'Yangi rasm yuklash',
diff --git a/client/src/locales/uz-UZ/login.js b/client/src/locales/uz-UZ/login.js
index 80609174..d681829b 100644
--- a/client/src/locales/uz-UZ/login.js
+++ b/client/src/locales/uz-UZ/login.js
@@ -17,7 +17,6 @@ export default {
poweredByPlanka: 'PLANKA tomonidan quvvatlanadi',
serverConnectionFailed: "Serverga bog'lanish xatosi",
unknownError: "Noma'lum xatolik, qaytadan urinib ko'ring",
- useSingleSignOn: 'Yagona kirish tizimidan foydalaning',
usernameAlreadyInUse: 'Foydalanuvchi nomi allaqachon mavjud',
whoops_title: 'Voy!',
},
@@ -25,11 +24,9 @@ export default {
action: {
cancelAndClose: 'Bekor qilish va yopish',
continue: 'Davom etish',
- debugSso: 'SSO ni tuzatish',
goBack: 'Orqaga',
goHome: 'Bosh sahifaga',
logIn: 'Kirish',
- logInWithSso: 'SSO orqali kirish',
},
},
};
diff --git a/client/src/locales/vi-VN/core.js b/client/src/locales/vi-VN/core.js
index 838644b4..d6b883ab 100644
--- a/client/src/locales/vi-VN/core.js
+++ b/client/src/locales/vi-VN/core.js
@@ -89,8 +89,6 @@ export default {
'Bạn có chắc chắn muốn xóa quản lý này khỏi dự án không?',
areYouSureYouWantToRemoveThisMemberFromBoard:
'Bạn có chắc chắn muốn xóa thành viên này khỏi bảng không?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- 'Bạn có chắc chắn muốn hủy liên kết SSO khỏi người dùng này không? Điều này sẽ cho phép người dùng đăng nhập bằng mật khẩu.',
assignAsOwner_title: 'Chỉ định làm chủ sở hữu',
atLeastOneListMustBePresent: 'Phải có ít nhất một danh sách',
attachment: 'Tệp đính kèm',
@@ -337,7 +335,6 @@ export default {
turnOffRecentCardHighlighting: 'Tắt làm nổi bật thẻ gần đây',
typeNameToConfirm: 'Nhập tên để xác nhận.',
typeTitleToConfirm: 'Nhập tiêu đề để xác nhận.',
- unlinkSso_title: 'Hủy liên kết SSO',
unsavedChanges: 'Thay đổi chưa được lưu',
uploadFailedFileIsTooBig: 'Tải lên thất bại: Tệp quá lớn.',
uploadFailedNotEnoughStorageSpace: 'Tải lên thất bại: Không đủ không gian lưu trữ.',
@@ -505,8 +502,6 @@ export default {
start: 'Bắt đầu',
stop: 'Dừng',
subscribe: 'Đăng ký theo dõi',
- unlinkSso: 'Hủy liên kết SSO',
- unlinkSso_title: 'Hủy liên kết SSO',
unsubscribe: 'Hủy đăng ký theo dõi',
uploadNewAvatar: 'Tải lên ảnh đại diện mới',
uploadNewImage: 'Tải lên ảnh mới',
diff --git a/client/src/locales/vi-VN/login.js b/client/src/locales/vi-VN/login.js
index 40f1890f..794384f5 100644
--- a/client/src/locales/vi-VN/login.js
+++ b/client/src/locales/vi-VN/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: 'Được phát triển bởi <1>PLANKA1>',
serverConnectionFailed: 'Không kết nối được tới máy chủ',
unknownError: 'Lỗi không xác định, thử lại sau',
- useSingleSignOn: 'Sử dụng đăng nhập một lần (SSO)',
usernameAlreadyInUse: 'Tên đăng nhập đã được sử dụng',
whoops_title: 'Ôi thôi chếcccc!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: 'Hủy và đóng',
continue: 'Tiếp tục',
- debugSso: 'Gỡ lỗi SSO',
goBack: 'Quay lại',
goHome: 'Về trang chủ',
logIn: 'Đăng nhập',
- logInWithSso: 'Đăng nhập bằng SSO',
},
},
};
diff --git a/client/src/locales/zh-CN/core.js b/client/src/locales/zh-CN/core.js
index 41610fc9..46df492f 100644
--- a/client/src/locales/zh-CN/core.js
+++ b/client/src/locales/zh-CN/core.js
@@ -75,8 +75,6 @@ export default {
areYouSureYouWantToRegenerateThisApiKey: '确认重新生成此API密钥吗?之前的密钥将不再有效。',
areYouSureYouWantToRemoveThisManagerFromProject: '确认从本项目删除该管理员吗?',
areYouSureYouWantToRemoveThisMemberFromBoard: '确认本面板删除该成员吗?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- '您确定要取消此用户的SSO链接吗?这将允许用户使用密码登录。',
assignAsOwner_title: '指定为所有者',
atLeastOneListMustBePresent: '至少需要存在一个列表',
attachment: '附件',
@@ -315,7 +313,6 @@ export default {
turnOffRecentCardHighlighting: '关闭最近卡片高亮',
typeNameToConfirm: '输入名称以确认。',
typeTitleToConfirm: '输入标题以确认。',
- unlinkSso_title: '取消SSO链接',
unsavedChanges: '未保存的更改',
uploadFailedFileIsTooBig: '上传失败:文件太大。',
uploadFailedNotEnoughStorageSpace: '上传失败:存储空间不足。',
@@ -480,8 +477,6 @@ export default {
start: '开始',
stop: '结束',
subscribe: '关注',
- unlinkSso: '取消SSO链接',
- unlinkSso_title: '取消SSO链接',
unsubscribe: '取消关注',
uploadNewAvatar: '上传新头像',
uploadNewImage: '上传图片',
diff --git a/client/src/locales/zh-CN/login.js b/client/src/locales/zh-CN/login.js
index 218ae6c5..78b2cacf 100644
--- a/client/src/locales/zh-CN/login.js
+++ b/client/src/locales/zh-CN/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: '技术支持由<1>PLANKA1>提供',
serverConnectionFailed: '服务器连接失败',
unknownError: '未知错误,请稍后重试',
- useSingleSignOn: '使用单点登录',
usernameAlreadyInUse: '用户名已被占用',
whoops_title: '哎呀!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: '取消并关闭',
continue: '继续',
- debugSso: '调试SSO',
goBack: '返回',
goHome: '回到首页',
logIn: '登录',
- logInWithSso: '使用SSO登录',
},
},
};
diff --git a/client/src/locales/zh-TW/core.js b/client/src/locales/zh-TW/core.js
index 3f97e088..cae9e76f 100644
--- a/client/src/locales/zh-TW/core.js
+++ b/client/src/locales/zh-TW/core.js
@@ -75,8 +75,6 @@ export default {
areYouSureYouWantToRegenerateThisApiKey: '確認重新產生此API金鑰嗎?之前的金鑰將不再有效。',
areYouSureYouWantToRemoveThisManagerFromProject: '確認從此專案中刪除該管理員嗎?',
areYouSureYouWantToRemoveThisMemberFromBoard: '確認從此看板中刪除該成員嗎?',
- areYouSureYouWantToUnlinkSsoFromThisUser:
- '您確定要取消此使用者的SSO連結嗎?這將允許使用者使用密碼登入。',
assignAsOwner_title: '指派為擁有者',
atLeastOneListMustBePresent: '至少必須有一個列表',
attachment: '附件',
@@ -315,7 +313,6 @@ export default {
turnOffRecentCardHighlighting: '關閉最近卡片高亮顯示',
typeNameToConfirm: '輸入名稱以確認。',
typeTitleToConfirm: '輸入標題以確認。',
- unlinkSso_title: '取消SSO連結',
unsavedChanges: '未保存的更改',
uploadFailedFileIsTooBig: '上傳失敗:檔案太大。',
uploadFailedNotEnoughStorageSpace: '上傳失敗:儲存空間不足。',
@@ -480,8 +477,6 @@ export default {
start: '開始',
stop: '結束',
subscribe: '訂閱',
- unlinkSso: '取消SSO連結',
- unlinkSso_title: '取消SSO連結',
unsubscribe: '取消訂閱',
uploadNewAvatar: '上傳新頭像',
uploadNewImage: '上傳圖片',
diff --git a/client/src/locales/zh-TW/login.js b/client/src/locales/zh-TW/login.js
index be031084..76a059f5 100644
--- a/client/src/locales/zh-TW/login.js
+++ b/client/src/locales/zh-TW/login.js
@@ -16,7 +16,6 @@ export default {
poweredByPlanka: '技術支援由<1>PLANKA1>提供',
serverConnectionFailed: '伺服器連接失敗',
unknownError: '未知錯誤,請稍後重試',
- useSingleSignOn: '使用單一登入',
usernameAlreadyInUse: '使用者名稱已被佔用',
whoops_title: '哎呀!',
},
@@ -24,11 +23,9 @@ export default {
action: {
cancelAndClose: '取消並關閉',
continue: '繼續',
- debugSso: '偵錯SSO',
goBack: '返回',
goHome: '回到首頁',
logIn: '登入',
- logInWithSso: '使用SSO登入',
},
},
};
diff --git a/client/src/models/User.js b/client/src/models/User.js
index 94f9ce61..8c67370c 100755
--- a/client/src/models/User.js
+++ b/client/src/models/User.js
@@ -78,7 +78,6 @@ export default class extends BaseModel {
subscribeToCardWhenCommenting: attr(),
turnOffRecentCardHighlighting: attr(),
isDefaultAdmin: attr(),
- isSsoUser: attr(),
isDeactivated: attr(),
lockedFieldNames: attr(),
isAvatarUpdating: attr({
diff --git a/client/src/reducers/auth.js b/client/src/reducers/auth.js
index 5b319904..8e0bc164 100755
--- a/client/src/reducers/auth.js
+++ b/client/src/reducers/auth.js
@@ -15,7 +15,6 @@ const initialState = {
export default (state = initialState, { type, payload }) => {
switch (type) {
case ActionTypes.AUTHENTICATE__SUCCESS:
- case ActionTypes.WITH_OIDC_AUTHENTICATE__SUCCESS:
case ActionTypes.TERMS_ACCEPT__SUCCESS:
return {
...state,
diff --git a/client/src/reducers/common.js b/client/src/reducers/common.js
index 5c800daa..2b6d1731 100644
--- a/client/src/reducers/common.js
+++ b/client/src/reducers/common.js
@@ -33,7 +33,6 @@ export default (state = initialState, { type, payload }) => {
bootstrap: payload.bootstrap,
};
case ActionTypes.AUTHENTICATE__SUCCESS:
- case ActionTypes.WITH_OIDC_AUTHENTICATE__SUCCESS:
case ActionTypes.TERMS_ACCEPT__SUCCESS:
return {
...state,
diff --git a/client/src/reducers/ui/authenticate-form.js b/client/src/reducers/ui/authenticate-form.js
index 40f32020..58224ade 100644
--- a/client/src/reducers/ui/authenticate-form.js
+++ b/client/src/reducers/ui/authenticate-form.js
@@ -3,10 +3,7 @@
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
-import { LOCATION_CHANGE_HANDLE } from '../../lib/redux-router';
-
import ActionTypes from '../../constants/ActionTypes';
-import Paths from '../../constants/Paths';
const initialState = {
data: {
@@ -14,9 +11,7 @@ const initialState = {
password: '',
},
isSubmitting: false,
- isSubmittingWithOidc: false,
error: null,
- debugLogs: null,
pendingToken: null,
step: null,
termsForm: {
@@ -30,15 +25,6 @@ const initialState = {
// eslint-disable-next-line default-param-last
export default (state = initialState, { type, payload }) => {
switch (type) {
- case LOCATION_CHANGE_HANDLE:
- if (payload.location.pathname === Paths.OIDC_CALLBACK) {
- return {
- ...state,
- isSubmittingWithOidc: true,
- };
- }
-
- return state;
case ActionTypes.AUTHENTICATE:
return {
...state,
@@ -49,7 +35,6 @@ export default (state = initialState, { type, payload }) => {
isSubmitting: true,
};
case ActionTypes.AUTHENTICATE__SUCCESS:
- case ActionTypes.WITH_OIDC_AUTHENTICATE__SUCCESS:
case ActionTypes.TERMS_ACCEPT__SUCCESS:
case ActionTypes.TERMS_CANCEL__SUCCESS:
case ActionTypes.TERMS_CANCEL__FAILURE:
@@ -73,31 +58,6 @@ export default (state = initialState, { type, payload }) => {
isSubmitting: false,
error: payload.error,
};
- case ActionTypes.WITH_OIDC_AUTHENTICATE__FAILURE:
- if (payload.terms) {
- return {
- ...state,
- data: initialState.data,
- pendingToken: payload.error.pendingToken,
- step: payload.error.step,
- termsForm: {
- ...state.termsForm,
- payload: payload.terms,
- },
- };
- }
-
- return {
- ...state,
- isSubmittingWithOidc: false,
- error: payload.error,
- };
- case ActionTypes.WITH_OIDC_AUTHENTICATE__DEBUG:
- return {
- ...state,
- isSubmittingWithOidc: false,
- debugLogs: payload.logs,
- };
case ActionTypes.AUTHENTICATE_ERROR_CLEAR:
return {
...state,
diff --git a/client/src/sagas/core/index.js b/client/src/sagas/core/index.js
index d5d01755..ba536880 100755
--- a/client/src/sagas/core/index.js
+++ b/client/src/sagas/core/index.js
@@ -3,12 +3,11 @@
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
-import { apply, fork, select, take } from 'redux-saga/effects';
+import { apply, fork, take } from 'redux-saga/effects';
import watchers from './watchers';
import services from './services';
import runWatchers from '../run-watchers';
-import selectors from '../../selectors';
import { socket } from '../../api';
import ActionTypes from '../../constants/ActionTypes';
import Paths from '../../constants/Paths';
@@ -21,17 +20,5 @@ export default function* coreSaga() {
yield take(ActionTypes.LOGOUT);
- const oidcBootstrap = yield select(selectors.selectOidcBootstrap);
-
- if (oidcBootstrap && oidcBootstrap.endSessionUrl !== null) {
- const currentUser = yield select(selectors.selectCurrentUser);
-
- if (!currentUser || currentUser.isSsoUser) {
- // Redirect the user to the IDP to log out.
- window.location.href = oidcBootstrap.endSessionUrl;
- return;
- }
- }
-
window.location.href = Paths.LOGIN;
}
diff --git a/client/src/sagas/core/services/router.js b/client/src/sagas/core/services/router.js
index a5efd858..c9fa5b15 100644
--- a/client/src/sagas/core/services/router.js
+++ b/client/src/sagas/core/services/router.js
@@ -53,7 +53,6 @@ export function* handleLocationChange() {
switch (pathsMatch.pattern.path) {
case Paths.LOGIN:
- case Paths.OIDC_CALLBACK:
yield call(goToRoot);
break;
diff --git a/client/src/sagas/login/index.js b/client/src/sagas/login/index.js
index 19accad3..1f5f9fc1 100755
--- a/client/src/sagas/login/index.js
+++ b/client/src/sagas/login/index.js
@@ -15,11 +15,7 @@ export default function* loginSaga() {
yield fork(services.initializeLogin);
- yield take([
- ActionTypes.AUTHENTICATE__SUCCESS,
- ActionTypes.WITH_OIDC_AUTHENTICATE__SUCCESS,
- ActionTypes.TERMS_ACCEPT__SUCCESS,
- ]);
+ yield take([ActionTypes.AUTHENTICATE__SUCCESS, ActionTypes.TERMS_ACCEPT__SUCCESS]);
yield cancel(watcherTasks);
yield call(services.goToRoot);
diff --git a/client/src/sagas/login/services/login.js b/client/src/sagas/login/services/login.js
index 460b828a..d73de52f 100644
--- a/client/src/sagas/login/services/login.js
+++ b/client/src/sagas/login/services/login.js
@@ -3,16 +3,13 @@
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
-import { nanoid } from 'nanoid';
import { call, put, select } from 'redux-saga/effects';
-import { replace } from '../../../lib/redux-router';
import selectors from '../../../selectors';
import actions from '../../../actions';
import api from '../../../api';
import i18n from '../../../i18n';
import { setAccessToken } from '../../../utils/access-token-storage';
-import Paths from '../../../constants/Paths';
import AccessTokenSteps from '../../../constants/AccessTokenSteps';
export function* initializeLogin() {
@@ -41,105 +38,6 @@ export function* authenticate(data) {
yield put(actions.authenticate.success(accessToken));
}
-export function* authenticateWithOidc() {
- const oidcBootstrap = yield select(selectors.selectOidcBootstrap);
-
- const state = nanoid();
- window.localStorage.setItem('oidc-state', state);
-
- const nonce = nanoid();
- window.localStorage.setItem('oidc-nonce', nonce);
-
- let redirectUrl = `${oidcBootstrap.authorizationUrl}`;
- redirectUrl += `&state=${encodeURIComponent(state)}`;
- redirectUrl += `&nonce=${encodeURIComponent(nonce)}`;
-
- window.location.href = redirectUrl;
-}
-
-export function* authenticateWithOidcCallback() {
- // https://github.com/plankanban/planka/issues/511#issuecomment-1771385639
- const params = new URLSearchParams(window.location.hash.substring(1) || window.location.search);
-
- const state = window.localStorage.getItem('oidc-state');
- window.localStorage.removeItem('oidc-state');
-
- const nonce = window.localStorage.getItem('oidc-nonce');
- window.localStorage.removeItem('oidc-nonce');
-
- yield put(replace(Paths.LOGIN));
-
- if (params.get('error') !== null) {
- yield put(
- actions.authenticateWithOidc.failure(
- new Error(
- `OIDC Authorization error: ${params.get('error')}: ${params.get('error_description')}`,
- ),
- ),
- );
- return;
- }
-
- const code = params.get('code');
- if (code === null) {
- yield put(
- actions.authenticateWithOidc.failure(new Error('Invalid OIDC response: no code parameter')),
- );
- return;
- }
-
- if (params.get('state') !== state) {
- yield put(
- actions.authenticateWithOidc.failure(
- new Error('Unable to process OIDC response: state mismatch'),
- ),
- );
- return;
- }
-
- if (nonce === null) {
- yield put(
- actions.authenticateWithOidc.failure(
- new Error('Unable to process OIDC response: no nonce issued'),
- ),
- );
- return;
- }
-
- const oidcBootstrap = yield select(selectors.selectOidcBootstrap);
-
- if (oidcBootstrap?.debug) {
- const {
- included: { logs },
- } = yield call(api.debugOidc, {
- code,
- nonce,
- });
-
- yield put(actions.authenticateWithOidc.debug(logs));
- return;
- }
-
- let accessToken;
- try {
- ({ item: accessToken } = yield call(api.exchangeForAccessTokenWithOidc, {
- code,
- nonce,
- }));
- } catch (error) {
- let terms;
- if (error.step === AccessTokenSteps.ACCEPT_TERMS) {
- ({ item: terms } = yield call(api.getTerms, i18n.resolvedLanguage));
- }
-
- yield put(actions.authenticateWithOidc.failure(error, terms));
- return;
- }
-
- yield call(setAccessToken, accessToken);
- yield put(actions.authenticateWithOidc.success(accessToken));
-}
-
export function* clearAuthenticateError() {
yield put(actions.clearAuthenticateError());
}
@@ -199,8 +97,6 @@ export function* updateTermsLanguage(value) {
export default {
initializeLogin,
authenticate,
- authenticateWithOidc,
- authenticateWithOidcCallback,
clearAuthenticateError,
acceptTerms,
cancelTerms,
diff --git a/client/src/sagas/login/services/router.js b/client/src/sagas/login/services/router.js
index 69667451..671ac266 100644
--- a/client/src/sagas/login/services/router.js
+++ b/client/src/sagas/login/services/router.js
@@ -6,7 +6,6 @@
import { call, put, select, take } from 'redux-saga/effects';
import { push } from '../../../lib/redux-router';
-import { authenticateWithOidc, authenticateWithOidcCallback } from './login';
import selectors from '../../../selectors';
import ActionTypes from '../../../constants/ActionTypes';
import Paths from '../../../constants/Paths';
@@ -48,23 +47,6 @@ export function* handleLocationChange() {
}
switch (pathsMatch.pattern.path) {
- case Paths.LOGIN: {
- const oidcBootstrap = yield select(selectors.selectOidcBootstrap);
-
- if (oidcBootstrap) {
- const params = new URLSearchParams(window.location.search);
-
- if (params.has('authenticateWithOidc')) {
- yield call(authenticateWithOidc);
- }
- }
-
- break;
- }
- case Paths.OIDC_CALLBACK:
- yield call(authenticateWithOidcCallback);
-
- break;
default:
}
}
diff --git a/client/src/sagas/login/watchers/login.js b/client/src/sagas/login/watchers/login.js
index a6520462..c4387327 100644
--- a/client/src/sagas/login/watchers/login.js
+++ b/client/src/sagas/login/watchers/login.js
@@ -13,7 +13,6 @@ export default function* loginWatchers() {
takeEvery(EntryActionTypes.AUTHENTICATE, ({ payload: { data } }) =>
services.authenticate(data),
),
- takeEvery(EntryActionTypes.WITH_OIDC_AUTHENTICATE, () => services.authenticateWithOidc()),
takeEvery(EntryActionTypes.AUTHENTICATE_ERROR_CLEAR, () => services.clearAuthenticateError()),
takeEvery(EntryActionTypes.TERMS_ACCEPT, ({ payload: { signature } }) =>
services.acceptTerms(signature),
diff --git a/client/src/selectors/common.js b/client/src/selectors/common.js
index 9a7fbf0a..9be17063 100644
--- a/client/src/selectors/common.js
+++ b/client/src/selectors/common.js
@@ -9,8 +9,6 @@ export const selectIsInitializing = ({ common: { isInitializing } }) => isInitia
export const selectBootstrap = ({ common: { bootstrap } }) => bootstrap;
-export const selectOidcBootstrap = (state) => selectBootstrap(state).oidc;
-
export const selectActiveUsersLimit = (state) => selectBootstrap(state).activeUsersLimit;
export const selectAccessToken = ({ auth: { accessToken } }) => accessToken;
@@ -27,7 +25,6 @@ export default {
selectIsSocketDisconnected,
selectIsInitializing,
selectBootstrap,
- selectOidcBootstrap,
selectActiveUsersLimit,
selectAccessToken,
selectAuthenticateForm,
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index 5641f3e1..a172f70f 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -62,29 +62,6 @@ services:
# - S3_FORCE_PATH_STYLE=true
# - S3_REQUEST_CHECKSUM_CALCULATION=
- # - OIDC_ISSUER=
- # - OIDC_CLIENT_ID=
- # - OIDC_CLIENT_SECRET=
- # - OIDC_USE_OAUTH_CALLBACK=true
- # - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=
- # - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
- # - OIDC_SCOPES=openid email profile
- # - OIDC_RESPONSE_MODE=fragment
- # - OIDC_USE_DEFAULT_RESPONSE_MODE=true
- # - OIDC_ADMIN_ROLES=admin
- # - OIDC_PROJECT_OWNER_ROLES=project_owner
- # - OIDC_BOARD_USER_ROLES=board_user
- # - OIDC_CLAIMS_SOURCE=userinfo
- # - OIDC_EMAIL_ATTRIBUTE=email
- # - OIDC_NAME_ATTRIBUTE=name
- # - OIDC_USERNAME_ATTRIBUTE=preferred_username
- # - OIDC_ROLES_ATTRIBUTE=groups
- # - OIDC_IGNORE_USERNAME=true
- # - OIDC_IGNORE_ROLES=true
- # - OIDC_ENFORCED=true
- # - OIDC_TIMEOUT=3500
- # - OIDC_DEBUG=true
-
# Email Notifications (https://nodemailer.com/smtp/)
# These values override and disable configuration in the UI if set.
# - SMTP_HOST=
diff --git a/docker-compose.yml b/docker-compose.yml
index d572bc8e..d7383be9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -78,31 +78,6 @@ services:
# - S3_FORCE_PATH_STYLE=true
# - S3_REQUEST_CHECKSUM_CALCULATION=
- # - OIDC_ISSUER=
- # - OIDC_CLIENT_ID=
- # - OIDC_CLIENT_SECRET=
- # Optionally store in secrets - then OIDC_CLIENT_SECRET should not be set
- # - OIDC_CLIENT_SECRET__FILE=/run/secrets/oidc_client_secret
- # - OIDC_USE_OAUTH_CALLBACK=true
- # - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=
- # - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
- # - OIDC_SCOPES=openid email profile
- # - OIDC_RESPONSE_MODE=fragment
- # - OIDC_USE_DEFAULT_RESPONSE_MODE=true
- # - OIDC_ADMIN_ROLES=admin
- # - OIDC_PROJECT_OWNER_ROLES=project_owner
- # - OIDC_BOARD_USER_ROLES=board_user
- # - OIDC_CLAIMS_SOURCE=userinfo
- # - OIDC_EMAIL_ATTRIBUTE=email
- # - OIDC_NAME_ATTRIBUTE=name
- # - OIDC_USERNAME_ATTRIBUTE=preferred_username
- # - OIDC_ROLES_ATTRIBUTE=groups
- # - OIDC_IGNORE_USERNAME=true
- # - OIDC_IGNORE_ROLES=true
- # - OIDC_ENFORCED=true
- # - OIDC_TIMEOUT=3500
- # - OIDC_DEBUG=true
-
# Email Notifications (https://nodemailer.com/smtp/)
# These values override and disable configuration in the UI if set.
# - SMTP_HOST=
diff --git a/server/.env.sample b/server/.env.sample
index c3263b32..c5ac1288 100644
--- a/server/.env.sample
+++ b/server/.env.sample
@@ -53,29 +53,6 @@ SECRET_KEY=notsecretkey
# S3_FORCE_PATH_STYLE=true
# S3_REQUEST_CHECKSUM_CALCULATION=
-# OIDC_ISSUER=
-# OIDC_CLIENT_ID=
-# OIDC_CLIENT_SECRET=
-# OIDC_USE_OAUTH_CALLBACK=true
-# OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=
-# OIDC_USERINFO_SIGNED_RESPONSE_ALG=
-# OIDC_SCOPES=openid email profile
-# OIDC_RESPONSE_MODE=fragment
-# OIDC_USE_DEFAULT_RESPONSE_MODE=true
-# OIDC_ADMIN_ROLES=admin
-# OIDC_PROJECT_OWNER_ROLES=project_owner
-# OIDC_BOARD_USER_ROLES=board_user
-# OIDC_CLAIMS_SOURCE=userinfo
-# OIDC_EMAIL_ATTRIBUTE=email
-# OIDC_NAME_ATTRIBUTE=name
-# OIDC_USERNAME_ATTRIBUTE=preferred_username
-# OIDC_ROLES_ATTRIBUTE=groups
-# OIDC_IGNORE_USERNAME=true
-# OIDC_IGNORE_ROLES=true
-# OIDC_ENFORCED=true
-# OIDC_TIMEOUT=3500
-# OIDC_DEBUG=true
-
# Email Notifications (https://nodemailer.com/smtp/)
# These values override and disable configuration in the UI if set.
# SMTP_HOST=
diff --git a/server/api/controllers/access-tokens/create.js b/server/api/controllers/access-tokens/create.js
index 69ce5e50..d31c3b84 100755
--- a/server/api/controllers/access-tokens/create.js
+++ b/server/api/controllers/access-tokens/create.js
@@ -97,11 +97,10 @@
* message:
* type: string
* enum:
- * - Use single sign-on
* - Terms acceptance required
* - Admin login required to initialize instance
* description: Specific error message
- * example: Use single sign-on
+ * example: Terms acceptance required
* security: []
*/
@@ -120,9 +119,6 @@ const Errors = {
INVALID_PASSWORD: {
invalidPassword: 'Invalid password',
},
- USE_SINGLE_SIGN_ON: {
- useSingleSignOn: 'Use single sign-on',
- },
TERMS_ACCEPTANCE_REQUIRED: {
termsAcceptanceRequired: 'Terms acceptance required',
},
@@ -156,9 +152,6 @@ module.exports = {
invalidPassword: {
responseType: 'unauthorized',
},
- useSingleSignOn: {
- responseType: 'forbidden',
- },
termsAcceptanceRequired: {
responseType: 'forbidden',
},
@@ -168,10 +161,6 @@ module.exports = {
},
async fn(inputs) {
- if (sails.config.custom.oidcEnforced) {
- throw Errors.USE_SINGLE_SIGN_ON;
- }
-
const remoteAddress = getRemoteAddress(this.req);
const user = await User.qm.getOneActiveByEmailOrUsername(inputs.emailOrUsername);
@@ -185,10 +174,6 @@ module.exports = {
: Errors.INVALID_CREDENTIALS;
}
- if (user.isSsoUser) {
- throw Errors.USE_SINGLE_SIGN_ON;
- }
-
const isPasswordValid = await bcrypt.compare(inputs.password, user.password);
if (!isPasswordValid) {
diff --git a/server/api/controllers/access-tokens/debug-oidc.js b/server/api/controllers/access-tokens/debug-oidc.js
deleted file mode 100644
index 488eab16..00000000
--- a/server/api/controllers/access-tokens/debug-oidc.js
+++ /dev/null
@@ -1,223 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-const Errors = {
- NOT_ENOUGH_RIGHTS: {
- notEnoughRights: 'Not enough rights',
- },
-};
-
-module.exports = {
- inputs: {
- code: {
- type: 'string',
- maxLength: 2048,
- required: true,
- },
- nonce: {
- type: 'string',
- maxLength: 1024,
- required: true,
- },
- },
-
- exits: {
- notEnoughRights: {
- responseType: 'forbidden',
- },
- },
-
- async fn(inputs) {
- if (!sails.config.custom.oidcDebug) {
- throw Errors.NOT_ENOUGH_RIGHTS;
- }
-
- const logs = ['🔐 Starting OIDC debug flow...', ''];
- const client = await sails.hooks.oidc.getClient();
-
- if (!client) {
- logs.push('❌ OIDC client is not initialized.');
- logs.push('💡 Hint: Check your OIDC issuer and client configuration.');
-
- return {
- item: null,
- included: {
- logs,
- },
- };
- }
-
- let tokenSet;
- try {
- logs.push('🔄 Exchanging authorization code...');
-
- if (sails.config.custom.oidcUseOauthCallback) {
- tokenSet = await client.oauthCallback(
- sails.config.custom.oidcRedirectUri,
- {
- iss: sails.config.custom.oidcIssuer,
- code: inputs.code,
- },
- { nonce: inputs.nonce },
- );
- } else {
- tokenSet = await client.callback(
- sails.config.custom.oidcRedirectUri,
- {
- iss: sails.config.custom.oidcIssuer,
- code: inputs.code,
- },
- { nonce: inputs.nonce },
- );
- }
-
- logs.push('✅ Authorization code exchanged successfully.', '');
- } catch (error) {
- logs.push('❌ Failed to exchange authorization code.');
- logs.push(`💬 Reason: ${error.message || error.toString()}`);
- logs.push('💡 Hint: Check redirect URI, client secret, and nonce handling.');
-
- return {
- item: null,
- included: {
- logs,
- },
- };
- }
-
- if (sails.config.custom.oidcClaimsSource === 'id_token') {
- logs.push('📥 Extracting claims from ID token...');
-
- try {
- claims = tokenSet.claims();
- logs.push('✅ Claims extracted successfully.', '');
- } catch (error) {
- logs.push('❌ Failed to extract user claims.');
- logs.push(`💬 Reason: ${error.message || error.toString()}`);
-
- return {
- item: null,
- included: {
- logs,
- },
- };
- }
- } else {
- logs.push('📥 Fetching claims from userinfo endpoint...');
-
- try {
- claims = await client.userinfo(tokenSet);
- logs.push('✅ Claims fetched successfully.', '');
- } catch (error) {
- logs.push('❌ Failed to fetch user claims.');
-
- if (error instanceof SyntaxError && error.message.includes('Unexpected token e in JSON')) {
- logs.push('💬 Reason: Userinfo response is signed or not JSON.');
- logs.push(
- '💡 Hint: Try configuring userinfo signed response algorithm or switch to ID token claims.',
- );
- } else {
- logs.push(`💬 Reason: ${error.message || error.toString()}`);
- }
-
- return {
- item: null,
- included: {
- logs,
- },
- };
- }
- }
-
- logs.push('📦 Raw claims received:', JSON.stringify(claims, null, 2), '');
- logs.push('🧩 Evaluating claim mappings...', '');
-
- const mappings = {
- email: {
- attribute: sails.config.custom.oidcEmailAttribute,
- value: _.get(claims, sails.config.custom.oidcEmailAttribute),
- },
- name: {
- attribute: sails.config.custom.oidcNameAttribute,
- value: _.get(claims, sails.config.custom.oidcNameAttribute),
- },
- username: sails.config.custom.oidcIgnoreUsername
- ? undefined
- : {
- attribute: sails.config.custom.oidcUsernameAttribute,
- value: _.get(claims, sails.config.custom.oidcUsernameAttribute),
- },
- roles: sails.config.custom.oidcIgnoreRoles
- ? undefined
- : {
- attribute: sails.config.custom.oidcRolesAttribute,
- value: _.get(claims, sails.config.custom.oidcRolesAttribute),
- },
- };
-
- logs.push('📋 Mapping result:', JSON.stringify(mappings, null, 2), '');
-
- if (!mappings.email.value) {
- logs.push('❌ Email not resolved.');
- logs.push('💡 Hint: Check email attribute mapping.', '');
- }
-
- if (!mappings.name.value) {
- logs.push('❌ Name not resolved.');
- logs.push('💡 Hint: Check name attribute mapping.', '');
- }
-
- if (!sails.config.custom.oidcIgnoreUsername) {
- if (!mappings.username.value) {
- logs.push('⚠️ Username not resolved.');
- logs.push('💡 Hint: Check username attribute mapping.', '');
- }
- }
-
- if (!sails.config.custom.oidcIgnoreRoles) {
- if (!Array.isArray(mappings.roles.value) || mappings.roles.value.length === 0) {
- logs.push('⚠️ Roles not resolved or empty.');
- logs.push('💡 Hint: Check roles attribute mapping or IdP role configuration.', '');
- } else {
- logs.push('🎭 Resolving user role from OIDC roles...');
-
- // Use a Set here to avoid quadratic time complexity
- const claimsRolesSet = new Set(mappings.roles.value);
-
- const foundRole = [User.Roles.ADMIN, User.Roles.PROJECT_OWNER, User.Roles.BOARD_USER].find(
- (roleItem) => {
- const configRoles = sails.config.custom[`oidc${_.upperFirst(roleItem)}Roles`];
-
- if (configRoles.includes('*')) {
- return true;
- }
-
- return configRoles.some((configRole) => claimsRolesSet.has(configRole));
- },
- );
-
- if (foundRole) {
- logs.push(`✅ Matched user role → ${_.lowerCase(foundRole)}`, '');
- } else {
- logs.push('⚠️ No user role matched configured OIDC roles.');
- logs.push('💡 Hint: Check role matching settings.', '');
- }
- }
- }
-
- if (mappings.email.value && mappings.name.value) {
- logs.push('🎉 OIDC debug completed successfully.');
- } else {
- logs.push('🛑 OIDC debug detected missing required attributes.');
- }
-
- return {
- item: null,
- included: {
- logs,
- },
- };
- },
-};
diff --git a/server/api/controllers/access-tokens/exchange-with-oidc.js b/server/api/controllers/access-tokens/exchange-with-oidc.js
deleted file mode 100644
index 1e0618ae..00000000
--- a/server/api/controllers/access-tokens/exchange-with-oidc.js
+++ /dev/null
@@ -1,271 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-/**
- * @swagger
- * /access-tokens/exchange-with-oidc:
- * post:
- * summary: Exchange OIDC code for access token
- * description: Exchanges an OIDC authorization code for an access token. Creates a user if they do not exist.
- * tags:
- * - Access Tokens
- * operationId: exchangeForAccessTokenWithOidc
- * requestBody:
- * required: true
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - nonce
- * properties:
- * code:
- * type: string
- * maxLength: 2048
- * description: Authorization code from OIDC provider
- * example: abc123def456ghi789
- * nonce:
- * type: string
- * maxLength: 1024
- * description: Nonce value for OIDC security
- * example: random-nonce-123456
- * withHttpOnlyToken:
- * type: boolean
- * description: Whether to include HTTP-only authentication cookie
- * example: true
- * responses:
- * 200:
- * description: OIDC exchange successful
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - item
- * properties:
- * item:
- * type: string
- * description: Access token for API authentication
- * example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ4...
- * headers:
- * Set-Cookie:
- * description: HTTP-only authentication cookie (if `withHttpOnlyToken` is true)
- * schema:
- * type: string
- * example: httpOnlyToken=29aa3e38-8d24-4029-9743-9cbcf0a0dd5c; HttpOnly; Secure; SameSite=Strict
- * 400:
- * $ref: '#/components/responses/ValidationError'
- * 401:
- * description: OIDC authentication error
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - message
- * properties:
- * code:
- * type: string
- * description: Error code
- * example: E_UNAUTHORIZED
- * message:
- * type: string
- * enum:
- * - Invalid code or nonce
- * - Invalid userinfo configuration
- * description: Specific error message
- * example: Invalid code or nonce
- * 403:
- * description: Authentication restriction
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - message
- * properties:
- * code:
- * type: string
- * description: Error code
- * example: E_FORBIDDEN
- * message:
- * type: string
- * enum:
- * - Terms acceptance required
- * - Admin login required to initialize instance
- * description: Specific error message
- * example: Terms acceptance required
- * 409:
- * description: Conflict error
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - message
- * properties:
- * code:
- * type: string
- * description: Error code
- * example: E_CONFLICT
- * message:
- * type: string
- * enum:
- * - Email already in use
- * - Username already in use
- * - Active users limit reached
- * description: Specific error message
- * example: Email already in use
- * 422:
- * description: Missing required values
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - message
- * properties:
- * code:
- * type: string
- * description: Error code
- * example: E_UNPROCESSABLE_ENTITY
- * message:
- * type: string
- * description: Error message
- * example: Unable to retrieve required values (email, name)
- * 500:
- * description: OIDC configuration error
- * content:
- * application/json:
- * schema:
- * type: object
- * required:
- * - code
- * - message
- * properties:
- * code:
- * type: string
- * description: Error code
- * example: E_INTERNAL_SERVER_ERROR
- * message:
- * type: string
- * description: Error message
- * example: Invalid OIDC configuration
- * security: []
- */
-
-const { getRemoteAddress } = require('../../../utils/remote-address');
-
-const Errors = {
- INVALID_OIDC_CONFIGURATION: {
- invalidOidcConfiguration: 'Invalid OIDC configuration',
- },
- INVALID_CODE_OR_NONCE: {
- invalidCodeOrNonce: 'Invalid code or nonce',
- },
- INVALID_USERINFO_CONFIGURATION: {
- invalidUserinfoConfiguration: 'Invalid userinfo configuration',
- },
- TERMS_ACCEPTANCE_REQUIRED: {
- termsAcceptanceRequired: 'Terms acceptance required',
- },
- EMAIL_ALREADY_IN_USE: {
- emailAlreadyInUse: 'Email already in use',
- },
- USERNAME_ALREADY_IN_USE: {
- usernameAlreadyInUse: 'Username already in use',
- },
- ACTIVE_USERS_LIMIT_REACHED: {
- activeUsersLimitReached: 'Active users limit reached',
- },
- MISSING_VALUES: {
- missingValues: 'Unable to retrieve required values (email, name)',
- },
-};
-
-module.exports = {
- inputs: {
- code: {
- type: 'string',
- maxLength: 2048,
- required: true,
- },
- nonce: {
- type: 'string',
- maxLength: 1024,
- required: true,
- },
- withHttpOnlyToken: {
- type: 'boolean',
- },
- },
-
- exits: {
- invalidOidcConfiguration: {
- responseType: 'serverError',
- },
- invalidCodeOrNonce: {
- responseType: 'unauthorized',
- },
- invalidUserinfoConfiguration: {
- responseType: 'unauthorized',
- },
- termsAcceptanceRequired: {
- responseType: 'forbidden',
- },
- adminLoginRequiredToInitializeInstance: {
- responseType: 'forbidden',
- },
- emailAlreadyInUse: {
- responseType: 'conflict',
- },
- usernameAlreadyInUse: {
- responseType: 'conflict',
- },
- activeUsersLimitReached: {
- responseType: 'conflict',
- },
- missingValues: {
- responseType: 'unprocessableEntity',
- },
- },
-
- async fn(inputs) {
- const remoteAddress = getRemoteAddress(this.req);
-
- const user = await sails.helpers.users
- .getOrCreateOneWithOidc(inputs.code, inputs.nonce)
- .intercept('invalidOidcConfiguration', () => Errors.INVALID_OIDC_CONFIGURATION)
- .intercept('invalidCodeOrNonce', () => {
- sails.log.warn(`Invalid code or nonce! (IP: ${remoteAddress})`);
- return Errors.INVALID_CODE_OR_NONCE;
- })
- .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('missingValues', () => Errors.MISSING_VALUES);
-
- return sails.helpers.accessTokens.handleSteps
- .with({
- user,
- remoteAddress,
- request: this.req,
- response: this.res,
- withHttpOnlyToken: inputs.withHttpOnlyToken,
- })
- .intercept('adminLoginRequiredToInitializeInstance', (error) => ({
- adminLoginRequiredToInitializeInstance: error.raw,
- }))
- .intercept('termsAcceptanceRequired', (error) => ({
- termsAcceptanceRequired: error.raw,
- }));
- },
-};
diff --git a/server/api/controllers/bootstrap/show.js b/server/api/controllers/bootstrap/show.js
index b78e6123..2f410729 100644
--- a/server/api/controllers/bootstrap/show.js
+++ b/server/api/controllers/bootstrap/show.js
@@ -20,33 +20,8 @@
* schema:
* type: object
* required:
- * - oidc
* - version
* properties:
- * oidc:
- * type: object
- * required:
- * - authorizationUrl
- * - endSessionUrl
- * - isEnforced
- * nullable: true
- * description: OpenID Connect configuration (null if not configured)
- * properties:
- * authorizationUrl:
- * type: string
- * format: uri
- * description: OIDC authorization URL for initiating authentication
- * example: https://oidc.example.com/auth
- * endSessionUrl:
- * type: string
- * format: uri
- * nullable: true
- * description: OIDC end session URL for logout (null if not supported by provider)
- * example: https://oidc.example.com/logout
- * isEnforced:
- * type: boolean
- * description: Whether OIDC authentication is enforced (users must use OIDC to login)
- * example: false
* activeUsersLimit:
* type: number
* nullable: true
@@ -75,10 +50,9 @@ module.exports = {
const { currentUser } = this.req;
const internalConfig = await InternalConfig.qm.getOneMain();
- const oidc = await sails.hooks.oidc.getBootstrap();
return {
- item: sails.helpers.bootstrap.presentOne(internalConfig, oidc, currentUser),
+ item: sails.helpers.bootstrap.presentOne(internalConfig, currentUser),
};
},
};
diff --git a/server/api/controllers/users/create.js b/server/api/controllers/users/create.js
index 9523465c..4b98fda0 100755
--- a/server/api/controllers/users/create.js
+++ b/server/api/controllers/users/create.js
@@ -200,10 +200,6 @@ module.exports = {
async fn(inputs) {
const { currentUser } = this.req;
- if (sails.config.custom.oidcEnforced) {
- throw Errors.NOT_ENOUGH_RIGHTS;
- }
-
const values = _.pick(inputs, [
'email',
'password',
diff --git a/server/api/controllers/users/update-email.js b/server/api/controllers/users/update-email.js
index ec239883..95387a0e 100644
--- a/server/api/controllers/users/update-email.js
+++ b/server/api/controllers/users/update-email.js
@@ -134,11 +134,7 @@ module.exports = {
throw Errors.USER_NOT_FOUND;
}
- if (
- user.email === sails.config.custom.defaultAdminEmail ||
- user.isSsoUser ||
- sails.config.custom.demoMode
- ) {
+ if (user.email === sails.config.custom.defaultAdminEmail || sails.config.custom.demoMode) {
throw Errors.NOT_ENOUGH_RIGHTS;
}
diff --git a/server/api/controllers/users/update-password.js b/server/api/controllers/users/update-password.js
index 35f1edad..5a45d36c 100644
--- a/server/api/controllers/users/update-password.js
+++ b/server/api/controllers/users/update-password.js
@@ -136,11 +136,7 @@ module.exports = {
throw Errors.USER_NOT_FOUND;
}
- if (
- user.email === sails.config.custom.defaultAdminEmail ||
- user.isSsoUser ||
- sails.config.custom.demoMode
- ) {
+ if (user.email === sails.config.custom.defaultAdminEmail || sails.config.custom.demoMode) {
throw Errors.NOT_ENOUGH_RIGHTS;
}
diff --git a/server/api/controllers/users/update-username.js b/server/api/controllers/users/update-username.js
index 4d8ceb42..38b50335 100644
--- a/server/api/controllers/users/update-username.js
+++ b/server/api/controllers/users/update-username.js
@@ -8,7 +8,7 @@
* /users/{id}/username:
* patch:
* summary: Update user username
- * description: Updates a user's username. Users must provide a current password when updating their own username (unless they are SSO users with `oidcIgnoreUsername` enabled). Admins can update any user's username without the current password.
+ * description: Updates a user's username. Users must provide a current password when updating their own username. Admins can update any user's username without the current password.
* tags:
* - Users
* operationId: updateUserUsername
@@ -136,11 +136,7 @@ module.exports = {
throw Errors.NOT_ENOUGH_RIGHTS;
}
- if (user.isSsoUser) {
- if (!sails.config.custom.oidcIgnoreUsername) {
- throw Errors.NOT_ENOUGH_RIGHTS;
- }
- } else if (inputs.id === currentUser.id) {
+ if (inputs.id === currentUser.id) {
if (!inputs.currentPassword) {
throw Errors.INVALID_CURRENT_PASSWORD;
}
diff --git a/server/api/controllers/users/update.js b/server/api/controllers/users/update.js
index b387fcc2..88a05900 100755
--- a/server/api/controllers/users/update.js
+++ b/server/api/controllers/users/update.js
@@ -95,10 +95,6 @@
* enum: [byDefault, alphabetically, byCreationTime]
* description: Default sort order for projects display
* example: byDefault
- * isSsoUser:
- * type: boolean
- * description: Whether the user is SSO user (only false value to unlink SSO, for admins)
- * example: false
* isDeactivated:
* type: boolean
* description: Whether the user account is deactivated and cannot log in (for admins)
@@ -127,7 +123,6 @@
* $ref: '#/components/responses/Conflict'
*/
-const { is } = require('../../../utils/validators');
const { idInput } = require('../../../utils/inputs');
const Errors = {
@@ -205,10 +200,6 @@ module.exports = {
type: 'string',
isIn: Object.values(User.ProjectOrders),
},
- isSsoUser: {
- type: 'boolean',
- custom: is(false),
- },
isDeactivated: {
type: 'boolean',
},
@@ -233,7 +224,7 @@ module.exports = {
if (inputs.id === currentUser.id) {
availableInputKeys.push(...User.PERSONAL_FIELD_NAMES);
} else if (currentUser.role === User.Roles.ADMIN) {
- availableInputKeys.push('role', 'isSsoUser', 'isDeactivated');
+ availableInputKeys.push('role', 'isDeactivated');
} else {
throw Errors.USER_NOT_FOUND; // Forbidden
}
@@ -257,14 +248,6 @@ module.exports = {
if (inputs.role || inputs.name) {
throw Errors.NOT_ENOUGH_RIGHTS;
}
- } else if (user.isSsoUser) {
- if (!sails.config.custom.oidcIgnoreRoles && inputs.role) {
- throw Errors.NOT_ENOUGH_RIGHTS;
- }
-
- if (inputs.name) {
- throw Errors.NOT_ENOUGH_RIGHTS;
- }
}
const values = {
@@ -283,7 +266,6 @@ module.exports = {
'defaultEditorMode',
'defaultHomeView',
'defaultProjectsOrder',
- 'isSsoUser',
'isDeactivated',
]),
};
diff --git a/server/api/helpers/bootstrap/present-one.js b/server/api/helpers/bootstrap/present-one.js
index 29e4957d..78ce3371 100644
--- a/server/api/helpers/bootstrap/present-one.js
+++ b/server/api/helpers/bootstrap/present-one.js
@@ -11,9 +11,6 @@ module.exports = {
type: 'ref',
required: true,
},
- oidc: {
- type: 'ref',
- },
user: {
type: 'ref',
},
@@ -21,7 +18,6 @@ module.exports = {
fn(inputs) {
const data = {
- oidc: inputs.oidc,
termsLanguages: sails.hooks.terms.getLanguages(),
version: sails.config.custom.version,
};
diff --git a/server/api/helpers/users/delete-related.js b/server/api/helpers/users/delete-related.js
index 300cd732..0ced8d54 100644
--- a/server/api/helpers/users/delete-related.js
+++ b/server/api/helpers/users/delete-related.js
@@ -21,10 +21,6 @@ module.exports = {
userIdOrIds = sails.helpers.utils.mapRecords(inputs.recordOrRecords);
}
- await IdentityProviderUser.qm.delete({
- userId: userIdOrIds,
- });
-
await Session.qm.delete({
userId: userIdOrIds,
});
diff --git a/server/api/helpers/users/get-or-create-one-with-oidc.js b/server/api/helpers/users/get-or-create-one-with-oidc.js
deleted file mode 100644
index 4d9298ce..00000000
--- a/server/api/helpers/users/get-or-create-one-with-oidc.js
+++ /dev/null
@@ -1,200 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-module.exports = {
- inputs: {
- code: {
- type: 'string',
- required: true,
- },
- nonce: {
- type: 'string',
- required: true,
- },
- },
-
- exits: {
- invalidOidcConfiguration: {},
- invalidCodeOrNonce: {},
- invalidUserinfoConfiguration: {},
- missingValues: {},
- emailAlreadyInUse: {},
- usernameAlreadyInUse: {},
- activeLimitReached: {},
- },
-
- async fn(inputs) {
- const client = await sails.hooks.oidc.getClient();
-
- if (!client) {
- throw 'invalidOidcConfiguration';
- }
-
- let tokenSet;
- try {
- if (sails.config.custom.oidcUseOauthCallback) {
- tokenSet = await client.oauthCallback(
- sails.config.custom.oidcRedirectUri,
- {
- iss: sails.config.custom.oidcIssuer,
- code: inputs.code,
- },
- {
- nonce: inputs.nonce,
- },
- );
- } else {
- tokenSet = await client.callback(
- sails.config.custom.oidcRedirectUri,
- {
- iss: sails.config.custom.oidcIssuer,
- code: inputs.code,
- },
- {
- nonce: inputs.nonce,
- },
- );
- }
- } catch (error) {
- sails.log.warn(`Error while exchanging OIDC code: ${error}`);
- throw 'invalidCodeOrNonce';
- }
-
- let claims;
- if (sails.config.custom.oidcClaimsSource === 'id_token') {
- claims = tokenSet.claims();
- } else {
- try {
- claims = await client.userinfo(tokenSet);
- } catch (error) {
- let errorText;
- if (
- error instanceof SyntaxError &&
- error.message.includes('Unexpected token e in JSON at position 0')
- ) {
- errorText = 'response is signed';
- } else {
- errorText = error.toString();
- }
-
- sails.log.warn(`Error while fetching OIDC userinfo: ${errorText}`);
- throw 'invalidUserinfoConfiguration';
- }
- }
-
- const email = _.get(claims, sails.config.custom.oidcEmailAttribute);
- const name = _.get(claims, sails.config.custom.oidcNameAttribute);
-
- if (!email || !name) {
- throw 'missingValues';
- }
-
- let role = User.Roles.BOARD_USER;
- if (!sails.config.custom.oidcIgnoreRoles) {
- const claimsRoles = _.get(claims, sails.config.custom.oidcRolesAttribute);
-
- if (Array.isArray(claimsRoles)) {
- // Use a Set here to avoid quadratic time complexity
- const claimsRolesSet = new Set(claimsRoles);
-
- const foundRole = [User.Roles.ADMIN, User.Roles.PROJECT_OWNER, User.Roles.BOARD_USER].find(
- (roleItem) => {
- const configRoles = sails.config.custom[`oidc${_.upperFirst(roleItem)}Roles`];
-
- if (configRoles.includes('*')) {
- return true;
- }
-
- return configRoles.some((configRole) => claimsRolesSet.has(configRole));
- },
- );
-
- if (foundRole) {
- role = foundRole;
- }
- }
- }
-
- const values = {
- email,
- role,
- name,
- isSsoUser: true,
- };
- if (!sails.config.custom.oidcIgnoreUsername) {
- values.username = _.get(claims, sails.config.custom.oidcUsernameAttribute);
- }
-
- // This whole block technically needs to be executed in a transaction
- // with SERIALIZABLE isolation level (but Waterline does not support
- // that), so this will result in errors if for example users are deleted
- // concurrently with logging in via OIDC.
- let identityProviderUser = await IdentityProviderUser.qm.getOneByIssuerAndSub(
- sails.config.custom.oidcIssuer,
- claims.sub,
- );
-
- let user;
- let isCreated = false;
-
- if (identityProviderUser) {
- user = await User.qm.getOneById(identityProviderUser.userId);
- } else {
- // If no IDP/User mapping exists, search for the user by email.
- user = await User.qm.getOneByEmail(values.email);
-
- // Otherwise, create a new user.
- if (!user) {
- user = await sails.helpers.users.createOne
- .with({
- values,
- actorUser: User.OIDC,
- })
- .intercept('usernameAlreadyInUse', 'usernameAlreadyInUse')
- .intercept('activeLimitReached', 'activeLimitReached');
-
- isCreated = true;
- }
-
- identityProviderUser = await IdentityProviderUser.qm.createOne({
- userId: user.id,
- issuer: sails.config.custom.oidcIssuer,
- sub: claims.sub || `${user.id}@${sails.config.custom.oidcIssuer}`,
- });
- }
-
- if (!isCreated) {
- values.isDeactivated = false;
-
- const updateFieldKeys = ['email', 'name', 'isSsoUser', 'isDeactivated'];
- if (!sails.config.custom.oidcIgnoreUsername) {
- updateFieldKeys.push('username');
- }
- if (!sails.config.custom.oidcIgnoreRoles) {
- updateFieldKeys.push('role');
- }
-
- const updateValues = {};
- // eslint-disable-next-line no-restricted-syntax
- for (const k of updateFieldKeys) {
- if (values[k] !== user[k]) updateValues[k] = values[k];
- }
-
- if (Object.keys(updateValues).length > 0) {
- user = await sails.helpers.users.updateOne
- .with({
- record: user,
- values: updateValues,
- actorUser: User.OIDC,
- })
- .intercept('emailAlreadyInUse', 'emailAlreadyInUse')
- .intercept('usernameAlreadyInUse', 'usernameAlreadyInUse')
- .intercept('activeLimitReached', 'activeLimitReached');
- }
- }
-
- return user;
- },
-};
diff --git a/server/api/helpers/users/present-one.js b/server/api/helpers/users/present-one.js
index 7a7e6146..9d9c177f 100644
--- a/server/api/helpers/users/present-one.js
+++ b/server/api/helpers/users/present-one.js
@@ -52,23 +52,8 @@ module.exports = {
const lockedFieldNames = [];
if (sails.config.custom.demoMode) {
lockedFieldNames.push('email', 'password', 'role', 'name', 'username');
- } else if (isDefaultAdmin || inputs.record.isSsoUser) {
- lockedFieldNames.push('email', 'password', 'name');
-
- if (isDefaultAdmin) {
- lockedFieldNames.push('role', 'username');
- } else if (inputs.record.isSsoUser) {
- if (!sails.config.custom.oidcIgnoreRoles) {
- lockedFieldNames.push('role');
- }
- if (!sails.config.custom.oidcIgnoreUsername) {
- lockedFieldNames.push('username');
- }
- }
- }
-
- if (sails.config.custom.oidcEnforced) {
- lockedFieldNames.push('isSsoUser');
+ } else if (isDefaultAdmin) {
+ lockedFieldNames.push('email', 'password', 'name', 'role', 'username');
}
Object.assign(data, {
diff --git a/server/api/hooks/oidc/index.js b/server/api/hooks/oidc/index.js
deleted file mode 100644
index ec673250..00000000
--- a/server/api/hooks/oidc/index.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-/**
- * oidc hook
- *
- * @description :: A hook definition. Extends Sails by adding shadow routes, implicit actions,
- * and/or initialization logic.
- * @docs :: https://sailsjs.com/docs/concepts/extending-sails/hooks
- */
-
-const openidClient = require('openid-client');
-
-module.exports = function defineOidcHook(sails) {
- let client = null;
- let clientInitPromise = null;
-
- return {
- /**
- * Runs when this Sails app loads/lifts.
- */
- async initialize() {
- if (!this.isEnabled()) {
- return;
- }
-
- sails.log.info('Initializing custom hook (`oidc`)');
- },
-
- async getClient() {
- if (!this.isEnabled()) {
- return null;
- }
-
- if (client) {
- return client;
- }
-
- if (clientInitPromise) {
- return clientInitPromise;
- }
-
- clientInitPromise = (async () => {
- sails.log.info('Initializing OIDC client');
-
- if (sails.config.custom.oidcTimeout !== null) {
- openidClient.custom.setHttpOptionsDefaults({
- timeout: sails.config.custom.oidcTimeout,
- });
- }
-
- let issuer;
- try {
- issuer = await openidClient.Issuer.discover(sails.config.custom.oidcIssuer);
- } catch (error) {
- sails.log.warn(`Error while initializing OIDC client: ${error}`);
-
- clientInitPromise = null;
- return null;
- }
-
- const metadata = {
- client_id: sails.config.custom.oidcClientId,
- client_secret: sails.config.custom.oidcClientSecret,
- redirect_uris: [sails.config.custom.oidcRedirectUri],
- response_types: ['code'],
- userinfo_signed_response_alg: sails.config.custom.oidcUserinfoSignedResponseAlg,
- };
-
- if (sails.config.custom.oidcIdTokenSignedResponseAlg) {
- metadata.id_token_signed_response_alg = sails.config.custom.oidcIdTokenSignedResponseAlg;
- }
-
- client = new issuer.Client(metadata);
- return client;
- })();
-
- return clientInitPromise;
- },
-
- async getBootstrap() {
- const instance = await this.getClient();
-
- if (!instance) {
- return null;
- }
-
- const authorizationUrlParams = {
- scope: sails.config.custom.oidcScopes,
- };
-
- if (!sails.config.custom.oidcUseDefaultResponseMode) {
- authorizationUrlParams.response_mode = sails.config.custom.oidcResponseMode;
- }
-
- const bootstrap = {
- authorizationUrl: instance.authorizationUrl(authorizationUrlParams),
- endSessionUrl: instance.issuer.end_session_endpoint ? instance.endSessionUrl({}) : null,
- isEnforced: sails.config.custom.oidcEnforced,
- };
- if (sails.config.custom.oidcDebug) {
- bootstrap.debug = true;
- }
-
- return bootstrap;
- },
-
- isEnabled() {
- return !!sails.config.custom.oidcIssuer;
- },
- };
-};
diff --git a/server/api/hooks/query-methods/models/IdentityProviderUser.js b/server/api/hooks/query-methods/models/IdentityProviderUser.js
deleted file mode 100644
index 83dab721..00000000
--- a/server/api/hooks/query-methods/models/IdentityProviderUser.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-/* Query methods */
-
-const createOne = (values) => IdentityProviderUser.create({ ...values }).fetch();
-
-const getOneByIssuerAndSub = (issuer, sub) =>
- IdentityProviderUser.findOne({
- issuer,
- sub,
- });
-
-// eslint-disable-next-line no-underscore-dangle
-const delete_ = (criteria) => IdentityProviderUser.destroy(criteria).fetch();
-
-module.exports = {
- createOne,
- getOneByIssuerAndSub,
- delete: delete_,
-};
diff --git a/server/api/models/IdentityProviderUser.js b/server/api/models/IdentityProviderUser.js
deleted file mode 100644
index de7875f1..00000000
--- a/server/api/models/IdentityProviderUser.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * Copyright (c) 2024 PLANKA Software GmbH
- * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
- */
-
-/**
- * IdentityProviderUser.js
- *
- * @description :: A model definition represents a database table/collection.
- * @docs :: https://sailsjs.com/docs/concepts/models-and-orm/models
- */
-
-module.exports = {
- attributes: {
- // ╔═╗╦═╗╦╔╦╗╦╔╦╗╦╦ ╦╔═╗╔═╗
- // ╠═╝╠╦╝║║║║║ ║ ║╚╗╔╝║╣ ╚═╗
- // ╩ ╩╚═╩╩ ╩╩ ╩ ╩ ╚╝ ╚═╝╚═╝
-
- issuer: {
- type: 'string',
- isNotEmptyString: true,
- allowNull: true,
- },
- sub: {
- type: 'string',
- isNotEmptyString: true,
- allowNull: true,
- },
-
- // ╔═╗╔╦╗╔╗ ╔═╗╔╦╗╔═╗
- // ║╣ ║║║╠╩╗║╣ ║║╚═╗
- // ╚═╝╩ ╩╚═╝╚═╝═╩╝╚═╝
-
- // ╔═╗╔═╗╔═╗╔═╗╔═╗╦╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
- // ╠═╣╚═╗╚═╗║ ║║ ║╠═╣ ║ ║║ ║║║║╚═╗
- // ╩ ╩╚═╝╚═╝╚═╝╚═╝╩╩ ╩ ╩ ╩╚═╝╝╚╝╚═╝
-
- userId: {
- model: 'User',
- required: true,
- columnName: 'user_id',
- },
- },
-
- tableName: 'identity_provider_user',
-};
diff --git a/server/api/models/User.js b/server/api/models/User.js
index c98e9119..1f0fe84c 100755
--- a/server/api/models/User.js
+++ b/server/api/models/User.js
@@ -142,11 +142,6 @@
* default: byDefault
* description: Default sort order for projects display (personal field)
* example: byDefault
- * isSsoUser:
- * type: boolean
- * default: false
- * description: Whether the user is SSO user (private field)
- * example: false
* isDeactivated:
* type: boolean
* default: false
@@ -238,7 +233,7 @@ const LANGUAGES = [
];
// TODO: find better way to handle apiKeyHash and apiKeyCreatedAt
-const PRIVATE_FIELD_NAMES = ['email', 'apiKeyPrefix', 'apiKeyHash', 'isSsoUser', 'apiKeyCreatedAt'];
+const PRIVATE_FIELD_NAMES = ['email', 'apiKeyPrefix', 'apiKeyHash', 'apiKeyCreatedAt'];
const PERSONAL_FIELD_NAMES = [
'language',
@@ -256,11 +251,6 @@ const INTERNAL = {
role: Roles.ADMIN,
};
-const OIDC = {
- id: '_oidc',
- role: Roles.ADMIN,
-};
-
module.exports = {
Roles,
EditorModes,
@@ -270,7 +260,6 @@ module.exports = {
PRIVATE_FIELD_NAMES,
PERSONAL_FIELD_NAMES,
INTERNAL,
- OIDC,
attributes: {
// ╔═╗╦═╗╦╔╦╗╦╔╦╗╦╦ ╦╔═╗╔═╗
@@ -378,11 +367,6 @@ module.exports = {
allowNull: true,
columnName: 'terms_signature',
},
- isSsoUser: {
- type: 'boolean',
- defaultsTo: false,
- columnName: 'is_sso_user',
- },
isDeactivated: {
type: 'boolean',
defaultsTo: false,
diff --git a/server/config/custom.js b/server/config/custom.js
index 4422fd79..da4aaf8c 100644
--- a/server/config/custom.js
+++ b/server/config/custom.js
@@ -74,34 +74,6 @@ module.exports.custom = {
s3ForcePathStyle: process.env.S3_FORCE_PATH_STYLE === 'true',
s3RequestChecksumCalculation: process.env.S3_REQUEST_CHECKSUM_CALCULATION,
- oidcIssuer: process.env.OIDC_ISSUER,
- oidcClientId: process.env.OIDC_CLIENT_ID,
- oidcClientSecret: process.env.OIDC_CLIENT_SECRET,
- oidcUseOauthCallback: process.env.OIDC_USE_OAUTH_CALLBACK === 'true',
- oidcIdTokenSignedResponseAlg: process.env.OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG,
- oidcUserinfoSignedResponseAlg: process.env.OIDC_USERINFO_SIGNED_RESPONSE_ALG,
- oidcScopes: process.env.OIDC_SCOPES || 'openid email profile',
- oidcResponseMode: process.env.OIDC_RESPONSE_MODE || 'fragment',
- oidcUseDefaultResponseMode: process.env.OIDC_USE_DEFAULT_RESPONSE_MODE === 'true',
- oidcAdminRoles: envToArray(process.env.OIDC_ADMIN_ROLES),
- oidcProjectOwnerRoles: envToArray(process.env.OIDC_PROJECT_OWNER_ROLES),
- oidcBoardUserRoles: envToArray(process.env.OIDC_BOARD_USER_ROLES),
- oidcClaimsSource: process.env.OIDC_CLAIMS_SOURCE || 'userinfo',
- oidcEmailAttribute: process.env.OIDC_EMAIL_ATTRIBUTE || 'email',
- oidcNameAttribute: process.env.OIDC_NAME_ATTRIBUTE || 'name',
- oidcUsernameAttribute: process.env.OIDC_USERNAME_ATTRIBUTE || 'preferred_username',
- oidcRolesAttribute: process.env.OIDC_ROLES_ATTRIBUTE || 'groups',
- oidcIgnoreUsername: process.env.OIDC_IGNORE_USERNAME === 'true',
- oidcIgnoreRoles: process.env.OIDC_IGNORE_ROLES === 'true',
- oidcEnforced: process.env.OIDC_ENFORCED === 'true',
- oidcTimeout: envToNumber(process.env.OIDC_TIMEOUT),
- oidcDebug: process.env.OIDC_DEBUG === 'true',
-
- // TODO: move client base url to environment variable?
- oidcRedirectUri: `${
- sails.config.environment === 'production' ? baseUrl : 'http://localhost:3000'
- }/oidc-callback`,
-
smtpHost: process.env.SMTP_HOST,
smtpPort: process.env.SMTP_PORT || 587,
smtpName: process.env.SMTP_NAME,
diff --git a/server/config/policies.js b/server/config/policies.js
index b2a64c3b..b73b26cd 100644
--- a/server/config/policies.js
+++ b/server/config/policies.js
@@ -49,8 +49,6 @@ module.exports.policies = {
'bootstrap/show': true,
'terms/show': true,
'access-tokens/create': true,
- 'access-tokens/exchange-with-oidc': true,
- 'access-tokens/debug-oidc': true,
'access-tokens/accept-terms': true,
'access-tokens/revoke-pending-token': true,
};
diff --git a/server/config/routes.js b/server/config/routes.js
index 4f5519cf..cdcdb330 100644
--- a/server/config/routes.js
+++ b/server/config/routes.js
@@ -117,8 +117,6 @@ module.exports.routes = {
'DELETE /api/webhooks/:id': 'webhooks/delete',
'POST /api/access-tokens': 'access-tokens/create',
- 'POST /api/access-tokens/exchange-with-oidc': 'access-tokens/exchange-with-oidc',
- 'POST /api/access-tokens/debug-oidc': 'access-tokens/debug-oidc',
'POST /api/access-tokens/accept-terms': 'access-tokens/accept-terms',
'POST /api/access-tokens/revoke-pending-token': 'access-tokens/revoke-pending-token',
'DELETE /api/access-tokens/me': 'access-tokens/delete',
diff --git a/server/db/migrations/20260807120000_remove_single_sign_on_support.js b/server/db/migrations/20260807120000_remove_single_sign_on_support.js
new file mode 100644
index 00000000..1b644729
--- /dev/null
+++ b/server/db/migrations/20260807120000_remove_single_sign_on_support.js
@@ -0,0 +1,51 @@
+/*!
+ * Copyright (c) 2024 PLANKA Software GmbH
+ * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
+ */
+
+/*
+ * Single sign-on support has been removed. Accounts that were provisioned through an
+ * identity provider have no local password, so they would silently become unusable once
+ * the flag is gone. They are deactivated first, which makes their state visible in the
+ * administration UI: an admin can set a password and reactivate them afterwards.
+ *
+ * The down migration restores the schema, but not the data - the provider links and the
+ * information about which accounts were externally managed are gone for good.
+ */
+
+module.exports.up = async (knex) => {
+ await knex('user_account').where('is_sso_user', true).update({
+ is_deactivated: true,
+ });
+
+ await knex.schema.dropTable('identity_provider_user');
+
+ return knex.schema.alterTable('user_account', (table) => {
+ table.dropColumn('is_sso_user');
+ });
+};
+
+module.exports.down = async (knex) => {
+ await knex.schema.alterTable('user_account', (table) => {
+ table.boolean('is_sso_user').notNullable().defaultTo(false);
+ });
+
+ return knex.schema.createTable('identity_provider_user', (table) => {
+ /* Columns */
+
+ table.bigInteger('id').primary().defaultTo(knex.raw('next_id()'));
+
+ table.bigInteger('user_id').notNullable();
+
+ table.text('issuer').notNullable();
+ table.text('sub').notNullable();
+
+ table.timestamp('created_at', true);
+ table.timestamp('updated_at', true);
+
+ /* Indexes */
+
+ table.unique(['issuer', 'sub']);
+ table.index('user_id');
+ });
+};
diff --git a/server/db/seeds/default.js b/server/db/seeds/default.js
index 3da664e4..6a92ae90 100644
--- a/server/db/seeds/default.js
+++ b/server/db/seeds/default.js
@@ -8,7 +8,6 @@ const bcrypt = require('bcrypt');
const buildUserData = () => {
const data = {
role: 'admin',
- isSsoUser: false,
isDeactivated: false,
};
diff --git a/server/db/upgrade.js b/server/db/upgrade.js
index e649a190..b93628b3 100644
--- a/server/db/upgrade.js
+++ b/server/db/upgrade.js
@@ -89,7 +89,6 @@ const upgradeDatabase = async () => {
ALTER TABLE migration_lock SET SCHEMA v1;
ALTER TABLE archive SET SCHEMA v1;
ALTER TABLE user_account SET SCHEMA v1;
- ALTER TABLE identity_provider_user SET SCHEMA v1;
ALTER TABLE session SET SCHEMA v1;
ALTER TABLE project SET SCHEMA v1;
ALTER TABLE project_manager SET SCHEMA v1;
@@ -147,20 +146,11 @@ const upgradeDatabase = async () => {
default_editor_mode: User.EditorModes.WYSIWYG,
default_home_view: User.HomeViews.GROUPED_PROJECTS,
default_projects_order: User.ProjectOrders.BY_DEFAULT,
- is_sso_user: user.is_sso,
is_deactivated: false,
})),
)
.transacting(trx);
- const identityProviderUsers = await trx('identity_provider_user')
- .withSchema('v1')
- .whereRaw('user_id = ANY (?)', [whereInUserIds]);
-
- if (identityProviderUsers.length > 0) {
- await knex.batchInsert('identity_provider_user', identityProviderUsers).transacting(trx);
- }
-
const sessions = await trx('session')
.withSchema('v1')
.whereRaw('user_id = ANY (?)', [whereInUserIds]);
diff --git a/server/package-lock.json b/server/package-lock.json
index dd7e6601..8a6d08f4 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -27,7 +27,6 @@
"mime-types": "^3.0.2",
"moment": "^2.30.1",
"nodemailer": "^9.0.3",
- "openid-client": "^5.7.1",
"patch-package": "^8.0.1",
"pg": "^8.20.0",
"read": "^5.0.1",
@@ -5581,15 +5580,6 @@
"integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
"license": "MIT"
},
- "node_modules/jose": {
- "version": "4.15.9",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
- "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
"node_modules/js-yaml": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz",
@@ -6768,15 +6758,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
@@ -6888,15 +6869,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/oidc-token-hash": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.2.0.tgz",
- "integrity": "sha512-6gj2m8cJZ+iSW8bm0FXdGF0YhIQbKrfP4yWTNzxc31U6MOjfEmB1rHvlYvxI1B7t7BCi1F2vYTT6YhtQRG4hxw==",
- "license": "MIT",
- "engines": {
- "node": "^10.13.0 || >=12.0.0"
- }
- },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -6960,21 +6932,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/openid-client": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz",
- "integrity": "sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==",
- "license": "MIT",
- "dependencies": {
- "jose": "^4.15.9",
- "lru-cache": "^6.0.0",
- "object-hash": "^2.2.0",
- "oidc-token-hash": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
"node_modules/opn": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
diff --git a/server/package.json b/server/package.json
index 78dd2656..ea63191c 100644
--- a/server/package.json
+++ b/server/package.json
@@ -72,7 +72,6 @@
"mime-types": "^3.0.2",
"moment": "^2.30.1",
"nodemailer": "^9.0.3",
- "openid-client": "^5.7.1",
"patch-package": "^8.0.1",
"pg": "^8.20.0",
"read": "^5.0.1",
diff --git a/server/start.sh b/server/start.sh
index 84bc374c..0928a3b7 100755
--- a/server/start.sh
+++ b/server/start.sh
@@ -132,7 +132,6 @@ fi
load_secret SECRET_KEY
load_secret DEFAULT_ADMIN_PASSWORD
load_secret S3_SECRET_ACCESS_KEY
-load_secret OIDC_CLIENT_SECRET
load_secret SMTP_PASSWORD
start_outgoing_proxy_if_needed