feat: Remove OIDC and SSO support
Existing SSO accounts have no local password, so the migration deactivates them before dropping is_sso_user and the identity_provider_user table.
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
- **Real-Time Updates:** Instant syncing across all users, no refresh needed
|
||||
- **Rich Markdown Support:** Write beautifully formatted card descriptions with a powerful markdown editor
|
||||
- **Flexible Notifications:** Get alerts through 100+ providers, fully customizable to your workflow
|
||||
- **Seamless Authentication:** Single sign-on with OpenID Connect integration
|
||||
- **Multilingual & Easy to Translate:** Full internationalization support for a global audience
|
||||
|
||||
## How to Deploy
|
||||
|
||||
@@ -116,7 +116,6 @@ Any questions or concerns, [raise an issue](https://github.com/Chris-Greaves/pla
|
||||
|
||||
The Helm chart supports mounting arbitrary ConfigMaps, Secrets, and Volumes to the PLANKA deployment using the `extraMounts` configuration. This is especially useful for scenarios like:
|
||||
|
||||
- Mounting custom CA certificates for OIDC with self-hosted identity providers
|
||||
- Adding custom configuration files
|
||||
- Mounting TLS certificates from existing secrets
|
||||
- Adding temporary or persistent storage volumes
|
||||
@@ -173,44 +172,6 @@ extraMounts:
|
||||
path: /exports/planka
|
||||
```
|
||||
|
||||
### OIDC with Self-Hosted Keycloak
|
||||
|
||||
A common use case is configuring OIDC with a self-hosted Keycloak instance that uses custom CA certificates.
|
||||
|
||||
First, create the CA certificate ConfigMap:
|
||||
|
||||
```bash
|
||||
kubectl create configmap ca-certificates --from-file=ca.crt=/path/to/your/ca.crt
|
||||
```
|
||||
|
||||
Then configure the chart:
|
||||
|
||||
```yaml
|
||||
# Mount custom CA certificate from existing ConfigMap
|
||||
extraMounts:
|
||||
- name: keycloak-ca
|
||||
mountPath: /etc/ssl/certs/keycloak-ca.crt
|
||||
subPath: ca.crt
|
||||
readOnly: true
|
||||
configMap:
|
||||
name: ca-certificates
|
||||
|
||||
# Configure Node.js to trust the custom CA
|
||||
extraEnv:
|
||||
- name: NODE_EXTRA_CA_CERTS
|
||||
value: "/etc/ssl/certs/keycloak-ca.crt"
|
||||
|
||||
# Enable OIDC
|
||||
oidc:
|
||||
enabled: true
|
||||
clientId: "planka-client"
|
||||
clientSecret: "your-client-secret"
|
||||
issuerUrl: "https://keycloak.example.com/realms/master"
|
||||
admin:
|
||||
roles:
|
||||
- "planka-admin"
|
||||
```
|
||||
|
||||
### Environment Variables from Secrets
|
||||
|
||||
You can reference values from existing secrets in environment variables:
|
||||
@@ -310,7 +271,4 @@ image:
|
||||
- **Reproducibility**: Makes deployments fully reproducible across environments
|
||||
- **Audit Trail**: Provides clear image identity in deployment manifests
|
||||
|
||||
### Complete Example
|
||||
|
||||
See `values-example.yaml` for a comprehensive example that demonstrates all the advanced features including OIDC configuration with custom CA certificates.
|
||||
````
|
||||
|
||||
@@ -173,33 +173,6 @@ spec:
|
||||
- name: {{ $k | quote }}
|
||||
value: {{ $v | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.oidc.enabled }}
|
||||
{{- $secretName := default (printf "%s-oidc" (include "planka.fullname" .)) .Values.oidc.existingSecret }}
|
||||
- name: OIDC_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: clientId
|
||||
name: {{ $secretName }}
|
||||
- name: OIDC_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: clientSecret
|
||||
name: {{ $secretName }}
|
||||
- name: OIDC_ISSUER
|
||||
value: {{ required "issuerUrl is required when configuring OIDC" .Values.oidc.issuerUrl | quote }}
|
||||
- name: OIDC_SCOPES
|
||||
value: {{ join " " .Values.oidc.scopes | default "openid profile email" | quote }}
|
||||
{{- if .Values.oidc.admin.roles }}
|
||||
- name: OIDC_ADMIN_ROLES
|
||||
value: {{ join "," .Values.oidc.admin.roles | quote }}
|
||||
{{- end }}
|
||||
- name: OIDC_ROLES_ATTRIBUTE
|
||||
value: {{ .Values.oidc.admin.rolesAttribute | default "groups" | quote }}
|
||||
{{- if .Values.oidc.admin.ignoreRoles }}
|
||||
- name: OIDC_IGNORE_ROLES
|
||||
value: {{ .Values.oidc.admin.ignoreRoles | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraContainers -}}
|
||||
{{ toYaml .Values.extraContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{{- if .Values.oidc.enabled }}
|
||||
{{- if eq (and (not (empty .Values.oidc.clientId)) (not (empty .Values.oidc.clientSecret))) (not (empty .Values.oidc.existingSecret)) -}}
|
||||
{{- fail "Either specify inline `clientId` and `clientSecret` or refer to them via `existingSecret`" -}}
|
||||
{{- end }}
|
||||
{{- if (and (and (not (empty .Values.oidc.clientId)) (not (empty .Values.oidc.clientSecret))) (empty .Values.oidc.existingSecret)) -}}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "planka.fullname" . }}-oidc
|
||||
labels:
|
||||
{{- include "planka.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
clientId: {{ .Values.oidc.clientId | b64enc | quote }}
|
||||
clientSecret: {{ .Values.oidc.clientSecret | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -151,71 +151,6 @@ persistence:
|
||||
accessMode: ReadWriteOnce
|
||||
size: 10Gi
|
||||
|
||||
## OpenID Identity Management configuration
|
||||
##
|
||||
## Example:
|
||||
## ---------------
|
||||
## oidc:
|
||||
## enabled: true
|
||||
## clientId: sxxaAIAxVXlCxTmc1YLHBbQr8NL8MqLI2DUbt42d
|
||||
## clientSecret: om4RTMRVHRszU7bqxB7RZNkHIzA8e4sGYWxeCwIMYQXPwEBWe4SY5a0wwCe9ltB3zrq5f0dnFnp34cEHD7QSMHsKvV9AiV5Z7eqDraMnv0I8IFivmuV5wovAECAYreSI
|
||||
## issuerUrl: https://auth.local/application/o/planka/
|
||||
## admin:
|
||||
## roles:
|
||||
## - planka-admin
|
||||
##
|
||||
## ---------------
|
||||
## NOTE: A minimal configuration requires setting `clientId`, `clientSecret` and `issuerUrl`. (plus `admin.roles` for administrators)
|
||||
## ref: https://docs.planka.cloud/docs/configuration/oidc/
|
||||
##
|
||||
oidc:
|
||||
## @param oidc.enabled Enable single sign-on (SSO) with OpenID Connect (OIDC)
|
||||
##
|
||||
enabled: false
|
||||
|
||||
## OIDC credentials
|
||||
## @param oidc.clientId A string unique to the provider that identifies your app.
|
||||
## @param oidc.clientSecret A secret string that the provider uses to confirm ownership of a client ID.
|
||||
##
|
||||
## NOTE: Either specify inline `clientId` and `clientSecret` or refer to them via `existingSecret`
|
||||
##
|
||||
clientId: ""
|
||||
clientSecret: ""
|
||||
|
||||
## @param oidc.existingSecret Name of an existing secret containing OIDC credentials
|
||||
## NOTE: Must contain key `clientId` and `clientSecret`
|
||||
## NOTE: When it's set, the `clientId` and `clientSecret` parameters are ignored
|
||||
##
|
||||
existingSecret: ""
|
||||
|
||||
## @param oidc.issuerUrl The OpenID connect metadata document endpoint
|
||||
##
|
||||
issuerUrl: ""
|
||||
|
||||
## @param oidc.scopes A list of scopes required for OIDC client.
|
||||
## If empty will default to `openid`, `profile` and `email`
|
||||
## NOTE: PLANKA needs the email and name claims
|
||||
##
|
||||
scopes: []
|
||||
|
||||
## Admin permissions configuration
|
||||
admin:
|
||||
## @param oidc.admin.ignoreRoles If set to true, the admin roles will be ignored.
|
||||
## It is useful if you want to use OIDC for authentication but not for authorization.
|
||||
## If empty will default to `false`
|
||||
##
|
||||
ignoreRoles: false
|
||||
|
||||
## @param oidc.admin.rolesAttribute The name of a custom group claim that you have configured in your OIDC provider
|
||||
## If empty will default to `groups`
|
||||
##
|
||||
rolesAttribute: groups
|
||||
|
||||
## @param oidc.admin.roles The names of the admin groups
|
||||
##
|
||||
roles: []
|
||||
# - planka-admin
|
||||
|
||||
## Extra environment variables for planka deployment
|
||||
## Supports hard coded and getting values from a k8s secret
|
||||
## - name: test
|
||||
@@ -293,20 +228,6 @@ extraMounts: []
|
||||
## emptyDir:
|
||||
## sizeLimit: 1Gi
|
||||
|
||||
## Example configuration for OIDC with self-hosted Keycloak using custom CA
|
||||
## (Requires pre-existing ConfigMap "ca-certificates")
|
||||
## extraMounts:
|
||||
## - name: keycloak-ca
|
||||
## mountPath: /etc/ssl/certs/keycloak-ca.crt
|
||||
## subPath: ca.crt
|
||||
## readOnly: true
|
||||
## configMap:
|
||||
## name: ca-certificates
|
||||
##
|
||||
## extraEnv:
|
||||
## - name: NODE_EXTRA_CA_CERTS
|
||||
## value: "/etc/ssl/certs/keycloak-ca.crt"
|
||||
|
||||
extraContainers: []
|
||||
## Extra sidecar containers
|
||||
## Add additional containers to the PLANKA pod
|
||||
|
||||
@@ -34,33 +34,6 @@ authenticate.failure = (error, terms) => ({
|
||||
},
|
||||
});
|
||||
|
||||
const authenticateWithOidc = () => ({
|
||||
type: ActionTypes.WITH_OIDC_AUTHENTICATE,
|
||||
payload: {},
|
||||
});
|
||||
|
||||
authenticateWithOidc.success = (accessToken) => ({
|
||||
type: ActionTypes.WITH_OIDC_AUTHENTICATE__SUCCESS,
|
||||
payload: {
|
||||
accessToken,
|
||||
},
|
||||
});
|
||||
|
||||
authenticateWithOidc.failure = (error, terms) => ({
|
||||
type: ActionTypes.WITH_OIDC_AUTHENTICATE__FAILURE,
|
||||
payload: {
|
||||
error,
|
||||
terms,
|
||||
},
|
||||
});
|
||||
|
||||
authenticateWithOidc.debug = (logs) => ({
|
||||
type: ActionTypes.WITH_OIDC_AUTHENTICATE__DEBUG,
|
||||
payload: {
|
||||
logs,
|
||||
},
|
||||
});
|
||||
|
||||
const clearAuthenticateError = () => ({
|
||||
type: ActionTypes.AUTHENTICATE_ERROR_CLEAR,
|
||||
payload: {},
|
||||
@@ -128,7 +101,6 @@ updateTermsLanguage.failure = (error) => ({
|
||||
export default {
|
||||
initializeLogin,
|
||||
authenticate,
|
||||
authenticateWithOidc,
|
||||
clearAuthenticateError,
|
||||
acceptTerms,
|
||||
cancelTerms,
|
||||
|
||||
@@ -10,11 +10,6 @@ import http from './http';
|
||||
const createAccessToken = (data, headers) =>
|
||||
http.post('/access-tokens?withHttpOnlyToken=true', data, headers);
|
||||
|
||||
const exchangeForAccessTokenWithOidc = (data, headers) =>
|
||||
http.post('/access-tokens/exchange-with-oidc?withHttpOnlyToken=true', data, headers);
|
||||
|
||||
const debugOidc = (data, headers) => http.post('/access-tokens/debug-oidc', data, headers);
|
||||
|
||||
// TODO: rename?
|
||||
const acceptTerms = (data, headers) => http.post('/access-tokens/accept-terms', data, headers);
|
||||
|
||||
@@ -25,8 +20,6 @@ const deleteCurrentAccessToken = (headers) => http.delete('/access-tokens/me', u
|
||||
|
||||
export default {
|
||||
createAccessToken,
|
||||
exchangeForAccessTokenWithOidc,
|
||||
debugOidc,
|
||||
acceptTerms,
|
||||
revokePendingToken,
|
||||
deleteCurrentAccessToken,
|
||||
|
||||
@@ -32,7 +32,6 @@ const StepTypes = {
|
||||
EDIT_PASSWORD: 'EDIT_PASSWORD',
|
||||
EDIT_ROLE: 'EDIT_ROLE',
|
||||
API_KEY: 'API_KEY',
|
||||
UNLINK_SSO: 'UNLINK_SSO',
|
||||
ACTIVATE: 'ACTIVATE',
|
||||
DEACTIVATE: 'DEACTIVATE',
|
||||
DELETE: 'DELETE',
|
||||
@@ -61,16 +60,6 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
[userId, dispatch],
|
||||
);
|
||||
|
||||
const handleUnlinkSsoConfirm = useCallback(() => {
|
||||
dispatch(
|
||||
entryActions.updateUser(userId, {
|
||||
isSsoUser: false,
|
||||
}),
|
||||
);
|
||||
|
||||
onClose();
|
||||
}, [userId, onClose, dispatch]);
|
||||
|
||||
const handleActivateConfirm = useCallback(() => {
|
||||
dispatch(
|
||||
entryActions.updateUser(userId, {
|
||||
@@ -123,10 +112,6 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
openStep(StepTypes.API_KEY);
|
||||
}, [openStep]);
|
||||
|
||||
const handleUnlinkSsoClick = useCallback(() => {
|
||||
openStep(StepTypes.UNLINK_SSO);
|
||||
}, [openStep]);
|
||||
|
||||
const handleActivateClick = useCallback(() => {
|
||||
openStep(StepTypes.ACTIVATE);
|
||||
}, [openStep]);
|
||||
@@ -165,16 +150,6 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
);
|
||||
case StepTypes.API_KEY:
|
||||
return <ApiKeyStep userId={userId} onBack={handleBack} onClose={onClose} />;
|
||||
case StepTypes.UNLINK_SSO:
|
||||
return (
|
||||
<ConfirmationStep
|
||||
title="common.unlinkSso"
|
||||
content="common.areYouSureYouWantToUnlinkSsoFromThisUser"
|
||||
buttonContent="action.unlinkSso"
|
||||
onConfirm={handleUnlinkSsoConfirm}
|
||||
onBack={handleBack}
|
||||
/>
|
||||
);
|
||||
case StepTypes.ACTIVATE:
|
||||
return (
|
||||
<ConfirmationStep
|
||||
@@ -271,14 +246,6 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
|
||||
context: 'title',
|
||||
})}
|
||||
</Menu.Item>
|
||||
{user.isSsoUser && !user.lockedFieldNames.includes('isSsoUser') && !isCurrentUser && (
|
||||
<Menu.Item className={styles.menuItem} onClick={handleUnlinkSsoClick}>
|
||||
<Icon name="unlink" className={styles.menuItemIcon} />
|
||||
{t('action.unlinkSso', {
|
||||
context: 'title',
|
||||
})}
|
||||
</Menu.Item>
|
||||
)}
|
||||
{!isCurrentUser && (
|
||||
<>
|
||||
<Menu.Item
|
||||
|
||||
@@ -21,11 +21,6 @@ const UsersPane = React.memo(() => {
|
||||
const activeUsersTotal = useSelector(selectors.selectActiveUsersTotal);
|
||||
const users = useSelector(selectors.selectUsers);
|
||||
|
||||
const canAdd = useSelector((state) => {
|
||||
const oidcBootstrap = selectors.selectOidcBootstrap(state);
|
||||
return !oidcBootstrap || !oidcBootstrap.isEnforced;
|
||||
});
|
||||
|
||||
const [t] = useTranslation();
|
||||
|
||||
const [search, handleSearchChange] = useField('');
|
||||
@@ -102,7 +97,6 @@ const UsersPane = React.memo(() => {
|
||||
className={styles.toggleDeactivatedButton}
|
||||
onClick={handleToggleDeactivatedClick}
|
||||
/>
|
||||
{canAdd && (
|
||||
<AddPopup>
|
||||
<Button
|
||||
positive
|
||||
@@ -117,7 +111,6 @@ const UsersPane = React.memo(() => {
|
||||
)}
|
||||
</Button>
|
||||
</AddPopup>
|
||||
)}
|
||||
</div>
|
||||
</Tab.Pane>
|
||||
);
|
||||
|
||||
@@ -8,8 +8,7 @@ import React, { useCallback, useEffect, useMemo } from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useTranslation, Trans } from 'react-i18next';
|
||||
import TextareaAutosize from 'react-textarea-autosize';
|
||||
import { Button, Divider, Form, Grid, Header, Message, TextArea } from 'semantic-ui-react';
|
||||
import { Form, Grid, Header, Message } from 'semantic-ui-react';
|
||||
import { useDidUpdate, usePrevious, useToggle } from '../../../lib/hooks';
|
||||
import { Input } from '../../../lib/custom-ui';
|
||||
|
||||
@@ -24,7 +23,7 @@ import logo from '../../../assets/images/logo.png';
|
||||
|
||||
import styles from './Content.module.scss';
|
||||
|
||||
const createMessage = (error, isDebug) => {
|
||||
const createMessage = (error) => {
|
||||
if (!error) {
|
||||
return error;
|
||||
}
|
||||
@@ -45,11 +44,6 @@ const createMessage = (error, isDebug) => {
|
||||
type: 'error',
|
||||
content: 'common.invalidPassword',
|
||||
};
|
||||
case 'Use single sign-on':
|
||||
return {
|
||||
type: 'error',
|
||||
content: 'common.useSingleSignOn',
|
||||
};
|
||||
case 'Admin login required to initialize instance':
|
||||
return {
|
||||
type: 'error',
|
||||
@@ -83,7 +77,7 @@ const createMessage = (error, isDebug) => {
|
||||
default:
|
||||
return {
|
||||
type: 'warning',
|
||||
content: isDebug ? error.message : 'common.unknownError',
|
||||
content: 'common.unknownError',
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -94,9 +88,7 @@ const Content = React.memo(() => {
|
||||
const {
|
||||
data: defaultData,
|
||||
isSubmitting,
|
||||
isSubmittingWithOidc,
|
||||
error,
|
||||
debugLogs,
|
||||
step,
|
||||
} = useSelector(selectors.selectAuthenticateForm);
|
||||
|
||||
@@ -126,11 +118,7 @@ const Content = React.memo(() => {
|
||||
return initialData;
|
||||
});
|
||||
|
||||
const withOidc = !!bootstrap.oidc;
|
||||
const isOidcEnforced = withOidc && bootstrap.oidc.isEnforced;
|
||||
const isOidcDebug = withOidc && bootstrap.oidc.debug;
|
||||
|
||||
const message = useMemo(() => createMessage(error, isOidcDebug), [error, isOidcDebug]);
|
||||
const message = useMemo(() => createMessage(error), [error]);
|
||||
const [focusPasswordFieldState, focusPasswordField] = useToggle();
|
||||
|
||||
const [emailOrUsernameFieldRef, handleEmailOrUsernameFieldRef] = useNestedRef('inputRef');
|
||||
@@ -155,19 +143,13 @@ const Content = React.memo(() => {
|
||||
dispatch(entryActions.authenticate(cleanData));
|
||||
}, [dispatch, data, emailOrUsernameFieldRef, passwordFieldRef]);
|
||||
|
||||
const handleAuthenticateWithOidcClick = useCallback(() => {
|
||||
dispatch(entryActions.authenticateWithOidc());
|
||||
}, [dispatch]);
|
||||
|
||||
const handleMessageDismiss = useCallback(() => {
|
||||
dispatch(entryActions.clearAuthenticateError());
|
||||
}, [dispatch]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isOidcEnforced) {
|
||||
emailOrUsernameFieldRef.current.focus();
|
||||
}
|
||||
}, [isOidcEnforced, emailOrUsernameFieldRef]);
|
||||
}, [emailOrUsernameFieldRef]);
|
||||
|
||||
useDidUpdate(() => {
|
||||
if (wasSubmitting && !isSubmitting && error) {
|
||||
@@ -227,8 +209,6 @@ const Content = React.memo(() => {
|
||||
onDismiss={handleMessageDismiss}
|
||||
/>
|
||||
)}
|
||||
{!isOidcEnforced && (
|
||||
<>
|
||||
<Form size="large" onSubmit={handleSubmit}>
|
||||
<div className={styles.inputWrapper}>
|
||||
<div className={styles.inputLabel}>{t('common.emailOrUsername')}</div>
|
||||
@@ -263,37 +243,9 @@ const Content = React.memo(() => {
|
||||
labelPosition="right"
|
||||
content={t('action.logIn')}
|
||||
loading={isSubmitting}
|
||||
disabled={isSubmitting || isSubmittingWithOidc}
|
||||
disabled={isSubmitting}
|
||||
/>
|
||||
</Form>
|
||||
{withOidc && (
|
||||
<Divider horizontal content={t('common.or')} className={styles.divider} />
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
{withOidc && (
|
||||
<>
|
||||
<Button
|
||||
fluid
|
||||
primary={isOidcDebug ? undefined : isOidcEnforced}
|
||||
color={isOidcDebug ? 'orange' : undefined}
|
||||
icon={isOidcEnforced ? 'right arrow' : undefined}
|
||||
labelPosition={isOidcEnforced ? 'right' : undefined}
|
||||
content={isOidcDebug ? t('action.debugSso') : t('action.logInWithSso')}
|
||||
loading={isSubmittingWithOidc}
|
||||
disabled={isSubmitting || isSubmittingWithOidc}
|
||||
onClick={handleAuthenticateWithOidcClick}
|
||||
/>
|
||||
{debugLogs && (
|
||||
<TextArea
|
||||
readOnly
|
||||
as={TextareaAutosize}
|
||||
value={debugLogs.join('\n')}
|
||||
className={styles.debugLog}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
<div className={styles.poweredBy}>
|
||||
<p className={styles.poweredByText}>
|
||||
|
||||
@@ -32,7 +32,6 @@ function Root({ store, history }) {
|
||||
<ToasterProvider toaster={toaster}>
|
||||
<Routes>
|
||||
<Route path={Paths.LOGIN} element={<Login />} />
|
||||
<Route path={Paths.OIDC_CALLBACK} element={<Login />} />
|
||||
<Route path={Paths.ROOT} element={<Core />} />
|
||||
<Route path={Paths.PROJECTS} element={<Core />} />
|
||||
<Route path={Paths.BOARDS} element={<Core />} />
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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`,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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: 'رفع صورة جديدة',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: 'مدعوم بواسطة <1>PLANKA</1>',
|
||||
serverConnectionFailed: 'فشل الاتصال بالخادم',
|
||||
unknownError: 'خطأ غير معروف، يرجى المحاولة لاحقاً',
|
||||
useSingleSignOn: 'استخدم تسجيل الدخول الموحد',
|
||||
usernameAlreadyInUse: 'اسم المستخدم تم استخدامه بالفعل',
|
||||
whoops_title: 'عفواً!',
|
||||
},
|
||||
@@ -24,11 +23,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'إلغاء وإغلاق',
|
||||
continue: 'متابعة',
|
||||
debugSso: 'تصحيح أخطاء تسجيل الدخول الموحد',
|
||||
goBack: 'العودة',
|
||||
goHome: 'الذهاب للرئيسية',
|
||||
logIn: 'تسجيل الدخول',
|
||||
logInWithSso: 'تسجيل الدخول باستخدام SSO',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'Качване на ново изображение',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Задвижвано от <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Desenvolupat amb <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Poháněno technologií <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Drevet af <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'Μεταφόρτωση νέας εικόνας',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Με την υποστήριξη του <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Desarrollado con <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Töötab <1>PLANKA</1> 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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'آپلود تصویر جدید',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: 'قدرت گرفته از <1>PLANKA</1>',
|
||||
serverConnectionFailed: 'اتصال به سرور ناموفق بود',
|
||||
unknownError: 'خطای ناشناخته، بعداً دوباره تلاش کنید',
|
||||
useSingleSignOn: 'استفاده از ورود یکپارچه',
|
||||
usernameAlreadyInUse: 'نام کاربری قبلا استفاده شده است',
|
||||
whoops_title: 'اوه!',
|
||||
},
|
||||
@@ -24,11 +23,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'لغو و بستن',
|
||||
continue: 'ادامه',
|
||||
debugSso: 'اشکالزدایی SSO',
|
||||
goBack: 'بازگشت',
|
||||
goHome: 'رفتن به خانه',
|
||||
logIn: 'ورود',
|
||||
logInWithSso: 'ورود با SSO',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Käyttää <1>PLANKAa</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Propulsé par <1>PLANKA</1>',
|
||||
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",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Működteti a <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Didukung oleh <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: '新しい画像をアップロード',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: '<1>PLANKA</1>で動作',
|
||||
serverConnectionFailed: 'サーバーの接続に失敗',
|
||||
unknownError: '不明なエラーです。後でもう一度試してください。',
|
||||
useSingleSignOn: 'SSOを使用',
|
||||
usernameAlreadyInUse: 'ユーザー名は既に使われています',
|
||||
whoops_title: 'おっと!',
|
||||
},
|
||||
@@ -25,11 +24,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'キャンセルして閉じる',
|
||||
continue: '続行',
|
||||
debugSso: 'SSOをデバッグ',
|
||||
goBack: '戻る',
|
||||
goHome: 'ホームへ',
|
||||
logIn: 'ログイン',
|
||||
logInWithSso: 'SSOでログイン',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: '새 이미지 업로드',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: '<1>PLANKA</1>로 구동됨',
|
||||
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로 로그인',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Mogelijk gemaakt door <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Desenvolvido por <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Desenvolvido por <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Susținut de <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'Загрузить новое изображение',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Powered by <1>PLANKA</1>',
|
||||
serverConnectionFailed: 'Не могу подключиться к серверу',
|
||||
unknownError: 'Что-то пошло не так, попробуйте позже',
|
||||
useSingleSignOn: 'Используйте единый вход',
|
||||
usernameAlreadyInUse: 'Имя пользователя уже занято',
|
||||
whoops_title: 'Упс!',
|
||||
},
|
||||
@@ -25,11 +24,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'Отменить и закрыть',
|
||||
continue: 'Продолжить',
|
||||
debugSso: 'Отладить SSO',
|
||||
goBack: 'Назад',
|
||||
goHome: 'На главную',
|
||||
logIn: 'Войти',
|
||||
logInWithSso: 'Войти с помощью единого входа',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Poháňané <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'Постави нову слику',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Покреће <1>PLANKA</1>',
|
||||
serverConnectionFailed: 'Неуспешна конекција са сервером',
|
||||
unknownError: 'Непозната грешка, покушајте поново касније',
|
||||
useSingleSignOn: 'Користи универзалну пријаву',
|
||||
usernameAlreadyInUse: 'Корисничко име је већ у употреби',
|
||||
whoops_title: 'Упс!',
|
||||
},
|
||||
@@ -25,11 +24,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'Откажи и затвори',
|
||||
continue: 'Настави',
|
||||
debugSso: 'Дебагуј SSO',
|
||||
goBack: 'Назад',
|
||||
goHome: 'Иди кући',
|
||||
logIn: 'Пријава',
|
||||
logInWithSso: 'Пријава са УП',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Pokreće <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Drivs av <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: 'Завантажити нове зображення',
|
||||
|
||||
@@ -17,7 +17,6 @@ export default {
|
||||
poweredByPlanka: 'Працює на <1>PLANKA</1>',
|
||||
serverConnectionFailed: 'Не вдалося підключитися до сервера',
|
||||
unknownError: 'Невідома помилка, спробуйте ще раз пізніше',
|
||||
useSingleSignOn: 'Використовувати одночасний вхід',
|
||||
usernameAlreadyInUse: "Ім'я користувача вже використовується",
|
||||
whoops_title: 'Ой!',
|
||||
},
|
||||
@@ -25,11 +24,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: 'Скасувати та закрити',
|
||||
continue: 'Продовжити',
|
||||
debugSso: 'Відлагодити SSO',
|
||||
goBack: 'Назад',
|
||||
goHome: 'На головну',
|
||||
logIn: 'Увійти',
|
||||
logInWithSso: 'Увійти за допомогою SSO',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: 'Được phát triển bởi <1>PLANKA</1>',
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: '上传图片',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: '技术支持由<1>PLANKA</1>提供',
|
||||
serverConnectionFailed: '服务器连接失败',
|
||||
unknownError: '未知错误,请稍后重试',
|
||||
useSingleSignOn: '使用单点登录',
|
||||
usernameAlreadyInUse: '用户名已被占用',
|
||||
whoops_title: '哎呀!',
|
||||
},
|
||||
@@ -24,11 +23,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: '取消并关闭',
|
||||
continue: '继续',
|
||||
debugSso: '调试SSO',
|
||||
goBack: '返回',
|
||||
goHome: '回到首页',
|
||||
logIn: '登录',
|
||||
logInWithSso: '使用SSO登录',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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: '上傳圖片',
|
||||
|
||||
@@ -16,7 +16,6 @@ export default {
|
||||
poweredByPlanka: '技術支援由<1>PLANKA</1>提供',
|
||||
serverConnectionFailed: '伺服器連接失敗',
|
||||
unknownError: '未知錯誤,請稍後重試',
|
||||
useSingleSignOn: '使用單一登入',
|
||||
usernameAlreadyInUse: '使用者名稱已被佔用',
|
||||
whoops_title: '哎呀!',
|
||||
},
|
||||
@@ -24,11 +23,9 @@ export default {
|
||||
action: {
|
||||
cancelAndClose: '取消並關閉',
|
||||
continue: '繼續',
|
||||
debugSso: '偵錯SSO',
|
||||
goBack: '返回',
|
||||
goHome: '回到首頁',
|
||||
logIn: '登入',
|
||||
logInWithSso: '使用SSO登入',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -78,7 +78,6 @@ export default class extends BaseModel {
|
||||
subscribeToCardWhenCommenting: attr(),
|
||||
turnOffRecentCardHighlighting: attr(),
|
||||
isDefaultAdmin: attr(),
|
||||
isSsoUser: attr(),
|
||||
isDeactivated: attr(),
|
||||
lockedFieldNames: attr(),
|
||||
isAvatarUpdating: attr({
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ export function* handleLocationChange() {
|
||||
|
||||
switch (pathsMatch.pattern.path) {
|
||||
case Paths.LOGIN:
|
||||
case Paths.OIDC_CALLBACK:
|
||||
yield call(goToRoot);
|
||||
|
||||
break;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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:
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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=
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user