summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md10
-rw-r--r--Dockerfile4
-rwxr-xr-xclient/components/main/editor.js13
-rw-r--r--client/components/main/layouts.jade1
-rw-r--r--client/components/main/layouts.js109
-rw-r--r--client/components/settings/connectionMethod.jade6
-rw-r--r--client/components/settings/connectionMethod.js34
-rw-r--r--docker-compose-build.yml3
-rw-r--r--docker-compose-postgresql.yml3
-rw-r--r--docker-compose.yml3
-rw-r--r--i18n/ar.i18n.json4
-rw-r--r--i18n/bg.i18n.json4
-rw-r--r--i18n/br.i18n.json4
-rw-r--r--i18n/ca.i18n.json4
-rw-r--r--i18n/cs.i18n.json22
-rw-r--r--i18n/da.i18n.json4
-rw-r--r--i18n/de.i18n.json4
-rw-r--r--i18n/el.i18n.json4
-rw-r--r--i18n/en-GB.i18n.json4
-rw-r--r--i18n/en.i18n.json4
-rw-r--r--i18n/eo.i18n.json4
-rw-r--r--i18n/es-AR.i18n.json4
-rw-r--r--i18n/es.i18n.json4
-rw-r--r--i18n/eu.i18n.json4
-rw-r--r--i18n/fa.i18n.json4
-rw-r--r--i18n/fi.i18n.json4
-rw-r--r--i18n/fr.i18n.json28
-rw-r--r--i18n/gl.i18n.json4
-rw-r--r--i18n/he.i18n.json4
-rw-r--r--i18n/hi.i18n.json4
-rw-r--r--i18n/hu.i18n.json4
-rw-r--r--i18n/hy.i18n.json4
-rw-r--r--i18n/id.i18n.json4
-rw-r--r--i18n/ig.i18n.json4
-rw-r--r--i18n/it.i18n.json4
-rw-r--r--i18n/ja.i18n.json4
-rw-r--r--i18n/ka.i18n.json4
-rw-r--r--i18n/km.i18n.json4
-rw-r--r--i18n/ko.i18n.json4
-rw-r--r--i18n/lv.i18n.json4
-rw-r--r--i18n/mn.i18n.json4
-rw-r--r--i18n/nb.i18n.json4
-rw-r--r--i18n/nl.i18n.json4
-rw-r--r--i18n/pl.i18n.json4
-rw-r--r--i18n/pt-BR.i18n.json4
-rw-r--r--i18n/pt.i18n.json4
-rw-r--r--i18n/ro.i18n.json4
-rw-r--r--i18n/ru.i18n.json12
-rw-r--r--i18n/sr.i18n.json4
-rw-r--r--i18n/sv.i18n.json4
-rw-r--r--i18n/sw.i18n.json4
-rw-r--r--i18n/ta.i18n.json4
-rw-r--r--i18n/th.i18n.json4
-rw-r--r--i18n/tr.i18n.json4
-rw-r--r--i18n/uk.i18n.json4
-rw-r--r--i18n/vi.i18n.json4
-rw-r--r--i18n/zh-CN.i18n.json4
-rw-r--r--i18n/zh-TW.i18n.json4
-rw-r--r--models/settings.js4
-rw-r--r--sandstorm-pkgdef.capnp3
-rwxr-xr-xsnap-src/bin/config7
-rwxr-xr-xsnap-src/bin/wekan-help34
62 files changed, 291 insertions, 185 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce29cfb7..b444bf1d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+# Upcoming Wekan release
+
+This release adds the following new features:
+
+- [Improve authentication](https://github.com/wekan/wekan/pull/2065): remove login dropdown,
+ and add setting `DEFAULT_AUTHENTICATION_METHOD=ldap` or
+ `sudo snap set wekan default-authentication-method='ldap'`. Thanks to Akuket. Closes wekan/wekan-ldap#31
+
+Thanks to above GitHub users for their contributions.
+
# v1.94 2018-12-18 Wekan version
This release adds the following new features:
diff --git a/Dockerfile b/Dockerfile
index 1383883e..b64b124a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -70,6 +70,7 @@ ARG LOGOUT_IN
ARG LOGOUT_ON_HOURS
ARG LOGOUT_ON_MINUTES
ARG CORS
+ARG DEFAULT_AUTHENTICATION_METHOD
# Set the environment variables (defaults where required)
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
@@ -142,7 +143,8 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
- CORS=""
+ CORS="" \
+ DEFAULT_AUTHENTICATION_METHOD=""
# Copy the app to the image
COPY ${SRC_PATH} /home/wekan/app
diff --git a/client/components/main/editor.js b/client/components/main/editor.js
index 20ece562..152f69e2 100755
--- a/client/components/main/editor.js
+++ b/client/components/main/editor.js
@@ -9,10 +9,12 @@ Template.editor.onRendered(() => {
match: /\B@([\w.]*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
- callback(currentBoard.activeMembers().map((member) => {
- const username = Users.findOne(member.userId).username;
- return username.includes(term) ? username : null;
- }).filter(Boolean));
+ if (currentBoard) {
+ callback(currentBoard.activeMembers().map((member) => {
+ const username = Users.findOne(member.userId).username;
+ return username.includes(term) ? username : null;
+ }).filter(Boolean));
+ }
},
template(value) {
return value;
@@ -37,6 +39,9 @@ const at = HTML.CharRef({html: '@', str: '@'});
Blaze.Template.registerHelper('mentions', new Template('mentions', function() {
const view = this;
const currentBoard = Boards.findOne(Session.get('currentBoard'));
+ if (!currentBoard) {
+ return HTML.Raw('');
+ }
const knowedUsers = currentBoard.members.map((member) => {
const u = Users.findOne(member.userId);
if(u){
diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade
index 55ee2686..1c22fee6 100644
--- a/client/components/main/layouts.jade
+++ b/client/components/main/layouts.jade
@@ -23,7 +23,6 @@ template(name="userFormsLayout")
br
section.auth-dialog
+Template.dynamic(template=content)
- +connectionMethod
if isCas
.at-form
button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js
index a50d167e..89dcca2d 100644
--- a/client/components/main/layouts.js
+++ b/client/components/main/layouts.js
@@ -6,29 +6,14 @@ const i18nTagToT9n = (i18nTag) => {
return i18nTag;
};
-const validator = {
- set(obj, prop, value) {
- if (prop === 'state' && value !== 'signIn') {
- $('.at-form-authentication').hide();
- } else if (prop === 'state' && value === 'signIn') {
- $('.at-form-authentication').show();
- }
- // The default behavior to store the value
- obj[prop] = value;
- // Indicate success
- return true;
- },
-};
-
-Template.userFormsLayout.onCreated(() => {
+Template.userFormsLayout.onCreated(function() {
+ Meteor.call('getDefaultAuthenticationMethod', (error, result) => {
+ this.data.defaultAuthenticationMethod = new ReactiveVar(error ? undefined : result);
+ });
Meteor.subscribe('setting');
-
});
Template.userFormsLayout.onRendered(() => {
-
- AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
-
const i18nTag = navigator.language;
if (i18nTag) {
T9n.setLanguage(i18nTagToT9n(i18nTag));
@@ -101,13 +86,11 @@ Template.userFormsLayout.events({
}
});
},
- 'click #at-btn'(event) {
- /* All authentication method can be managed/called here.
- !! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
- */
- const authenticationMethodSelected = $('.select-authentication').val();
- // Local account
- if (authenticationMethodSelected === 'password') {
+ 'click #at-btn'(event, instance) {
+ const email = $('#at-field-username_and_email').val();
+ const password = $('#at-field-password').val();
+
+ if (FlowRouter.getRouteName() !== 'atSignIn' || password === '' || email === '') {
return;
}
@@ -115,29 +98,11 @@ Template.userFormsLayout.events({
event.preventDefault();
event.stopImmediatePropagation();
- const email = $('#at-field-username_and_email').val();
- const password = $('#at-field-password').val();
-
- // Ldap account
- if (authenticationMethodSelected === 'ldap') {
- // Check if the user can use the ldap connection
- Meteor.subscribe('user-authenticationMethod', email, {
- onReady() {
- const user = Users.findOne();
- if (user === undefined || user.authenticationMethod === 'ldap') {
- // Use the ldap connection package
- Meteor.loginWithLDAP(email, password, function(error) {
- if (!error) {
- // Connection
- return FlowRouter.go('/');
- }
- return error;
- });
- }
- return this.stop();
- },
- });
- }
+ Meteor.subscribe('user-authenticationMethod', email, {
+ onReady() {
+ return authentication.call(this, instance, email, password);
+ },
+ });
},
});
@@ -146,3 +111,49 @@ Template.defaultLayout.events({
Modal.close();
},
});
+
+function authentication(instance, email, password) {
+ const user = Users.findOne();
+
+ // Authentication with password
+ if (user && user.authenticationMethod === 'password') {
+ $('#at-pwd-form').submit();
+ return this.stop();
+ }
+
+ const authenticationMethod = user
+ ? user.authenticationMethod
+ : instance.data.defaultAuthenticationMethod.get();
+
+ switch (authenticationMethod) {
+ case 'ldap':
+ // Use the ldap connection package
+ Meteor.loginWithLDAP(email, password, function(error) {
+ if (error) {
+ displayError('error-ldap-login');
+ return this.stop();
+ } else {
+ return FlowRouter.go('/');
+ }
+ });
+ break;
+
+ default:
+ displayError('error-undefined');
+ }
+
+ return this.stop();
+}
+
+function displayError(code) {
+ const translated = TAPi18n.__(code);
+
+ if (translated === code) {
+ return;
+ }
+
+ if(!$('.at-error').length) {
+ $('.at-pwd-form').before('<div class="at-error"><p></p></div>');
+ }
+ $('.at-error p').text(translated);
+}
diff --git a/client/components/settings/connectionMethod.jade b/client/components/settings/connectionMethod.jade
deleted file mode 100644
index ac4c8c64..00000000
--- a/client/components/settings/connectionMethod.jade
+++ /dev/null
@@ -1,6 +0,0 @@
-template(name='connectionMethod')
- div.at-form-authentication
- label {{_ 'authentication-method'}}
- select.select-authentication
- each authentications
- option(value="{{value}}") {{_ value}}
diff --git a/client/components/settings/connectionMethod.js b/client/components/settings/connectionMethod.js
deleted file mode 100644
index 9fe8f382..00000000
--- a/client/components/settings/connectionMethod.js
+++ /dev/null
@@ -1,34 +0,0 @@
-Template.connectionMethod.onCreated(function() {
- this.authenticationMethods = new ReactiveVar([]);
-
- Meteor.call('getAuthenticationsEnabled', (_, result) => {
- if (result) {
- // TODO : add a management of different languages
- // (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
- this.authenticationMethods.set([
- {value: 'password'},
- // Gets only the authentication methods availables
- ...Object.entries(result).filter((e) => e[1]).map((e) => ({value: e[0]})),
- ]);
- }
-
- // If only the default authentication available, hides the select boxe
- const content = $('.at-form-authentication');
- if (!(this.authenticationMethods.get().length > 1)) {
- content.hide();
- } else {
- content.show();
- }
- });
-});
-
-Template.connectionMethod.onRendered(() => {
- // Moves the select boxe in the first place of the at-pwd-form div
- $('.at-form-authentication').detach().prependTo('.at-pwd-form');
-});
-
-Template.connectionMethod.helpers({
- authentications() {
- return Template.instance().authenticationMethods.get();
- },
-});
diff --git a/docker-compose-build.yml b/docker-compose-build.yml
index a3ee2bd6..d7276948 100644
--- a/docker-compose-build.yml
+++ b/docker-compose-build.yml
@@ -223,6 +223,9 @@ services:
# LOGOUT_ON_MINUTES : The number of minutes
# example : LOGOUT_ON_MINUTES=55
#- LOGOUT_ON_MINUTES=
+ # DEFAULT_AUTHENTICATION_METHOD : The default authentication method used if a user does not exist to create and authenticate. Method can be password or ldap.
+ # example : DEFAULT_AUTHENTICATION_METHOD=ldap
+ #- DEFAULT_AUTHENTICATION_METHOD=
depends_on:
- wekandb
diff --git a/docker-compose-postgresql.yml b/docker-compose-postgresql.yml
index ab15d978..215dc7d5 100644
--- a/docker-compose-postgresql.yml
+++ b/docker-compose-postgresql.yml
@@ -245,6 +245,9 @@ services:
# LOGOUT_ON_MINUTES : The number of minutes
# example : LOGOUT_ON_MINUTES=55
#- LOGOUT_ON_MINUTES=
+ # DEFAULT_AUTHENTICATION_METHOD : The default authentication method used if a user does not exist to create and authenticate. . Method can be password or ldap.
+ # example : DEFAULT_AUTHENTICATION_METHOD=ldap
+ #- DEFAULT_AUTHENTICATION_METHOD=
depends_on:
- mongodb
diff --git a/docker-compose.yml b/docker-compose.yml
index 0cb58cff..7d7bf9d1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -212,6 +212,9 @@ services:
# LOGOUT_ON_MINUTES : The number of minutes
# example : LOGOUT_ON_MINUTES=55
#- LOGOUT_ON_MINUTES=
+ # DEFAULT_AUTHENTICATION_METHOD : The default authentication method used if a user does not exist to create and authenticate. Method can be password or ldap.
+ # example : DEFAULT_AUTHENTICATION_METHOD=ldap
+ #- DEFAULT_AUTHENTICATION_METHOD=
depends_on:
- wekandb
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index e19f9b40..a2692e96 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index 22e3e770..f26a29c5 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index cc7cb39b..3a94b649 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index e43d799e..d39c6597 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index fe7d8303..c3775d42 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -1,6 +1,6 @@
{
"accept": "Přijmout",
- "act-activity-notify": "Activity Notification",
+ "act-activity-notify": "Notifikace aktivit",
"act-addAttachment": "přiložen __attachment__ do __card__",
"act-addSubtask": "added subtask __checklist__ to __card__",
"act-addChecklist": "přidán checklist __checklist__ do __card__",
@@ -78,7 +78,7 @@
"and-n-other-card": "A __count__ další karta(y)",
"and-n-other-card_plural": "A __count__ dalších karet",
"apply": "Použít",
- "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
+ "app-is-offline": "Načítá se, prosím čekejte. Obnovení stránky způsobí ztrátu dat. Pokud se načítání nedaří, zkontrolujte prosím server.",
"archive": "Move to Archive",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
@@ -283,20 +283,20 @@
"import-board": "Importovat tablo",
"import-board-c": "Importovat tablo",
"import-board-title-trello": "Import board from Trello",
- "import-board-title-wekan": "Import board from previous export",
+ "import-board-title-wekan": "Importovat tablo z předchozího exportu",
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
"import-sandstorm-warning": "Importované tablo spaže všechny existující data v tablu a nahradí je importovaným tablem.",
"from-trello": "Z Trella",
- "from-wekan": "From previous export",
+ "from-wekan": "Z předchozího exportu",
"import-board-instruction-trello": "Na svém Trello tablu, otevři 'Menu', pak 'More', 'Print and Export', 'Export JSON', a zkopíruj výsledný text",
- "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
+ "import-board-instruction-wekan": "Ve vašem tablu jděte do 'Menu', klikněte na 'Exportovat tablo' a zkopírujte text ze staženého souboru.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Sem vlož validní JSON data",
"import-map-members": "Mapovat členy",
- "import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
+ "import-members-map": "Toto importované tablo obsahuje několik osob. Prosím namapujte osoby z importu na místní uživatelské účty.",
"import-show-user-mapping": "Zkontrolovat namapování členů",
- "import-user-select": "Pick your existing user you want to use as this member",
- "importMapMembersAddPopup-title": "Select member",
+ "import-user-select": "Vyberte existující uživatelský účet, kterého chcete použít pro tuto osobu",
+ "importMapMembersAddPopup-title": "Zvolte osobu",
"info": "Verze",
"initials": "Iniciály",
"invalid-date": "Neplatné datum",
@@ -460,7 +460,7 @@
"send-smtp-test": "Poslat si zkušební email.",
"invitation-code": "Kód pozvánky",
"email-invite-register-subject": "__inviter__ odeslal pozvánku",
- "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
+ "email-invite-register-text": "Ahoj __user__,\n\n__inviter__ tě přizval do kanban boardu ke spolupráci.\n\nNásleduj prosím odkaz níže:\n\n__url__\n\nKód Tvé pozvánky je: __icode__\n\nDěkujeme.",
"email-smtp-test-subject": "SMTP Test Email",
"email-smtp-test-text": "Email byl úspěšně odeslán",
"error-invitation-code-not-exist": "Kód pozvánky neexistuje.",
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json
index 930f9181..f73389d1 100644
--- a/i18n/da.i18n.json
+++ b/i18n/da.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index db620dd6..97288727 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Verstecke Logo",
"add-custom-html-after-body-start": "Füge benutzerdefiniertes HTML nach <body> Anfang hinzu",
- "add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu"
+ "add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json
index 1534d835..5fafb43e 100644
--- a/i18n/el.i18n.json
+++ b/i18n/el.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index 3b4172df..0899b113 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 5aa04e97..a4138f14 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -620,5 +620,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
}
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index 3613008e..4fdb7fab 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index 822c2b7a..0b854479 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 1313e252..7d37a331 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -619,5 +619,7 @@
"layout": "Disñeo",
"hide-logo": "Ocultar logo",
"add-custom-html-after-body-start": "Añade HTML personalizado después de <body> ",
- "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>"
+ "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index d2a6e68c..e12e0f19 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index fded3329..e72048d8 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -619,5 +619,7 @@
"layout": "لایه",
"hide-logo": "مخفی سازی نماد",
"add-custom-html-after-body-start": "افزودن کد های HTML بعد از <body> شروع",
- "add-custom-html-before-body-end": "افزودن کد های HTML قبل از </body> پایان"
+ "add-custom-html-before-body-end": "افزودن کد های HTML قبل از </body> پایان",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index b5a5d025..9f2432b4 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -619,5 +619,7 @@
"layout": "Ulkoasu",
"hide-logo": "Piilota Logo",
"add-custom-html-after-body-start": "Lisää HTML <body> alun jälkeen",
- "add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua"
+ "add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua",
+ "error-undefined": "Jotain meni pieleen",
+ "error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään"
} \ No newline at end of file
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 98fade89..db70770d 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -1,6 +1,6 @@
{
"accept": "Accepter",
- "act-activity-notify": "Activity Notification",
+ "act-activity-notify": "Notification d'activité",
"act-addAttachment": "a joint __attachment__ à __card__",
"act-addSubtask": "a ajouté une sous-tâche __checklist__ à __card__",
"act-addChecklist": "a ajouté la checklist __checklist__ à __card__",
@@ -78,7 +78,7 @@
"and-n-other-card": "Et __count__ autre carte",
"and-n-other-card_plural": "Et __count__ autres cartes",
"apply": "Appliquer",
- "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
+ "app-is-offline": "Chargement en cours, veuillez patienter. Vous risquez de perdre des données si vous rechargez la page. Si le chargement échoue, veuillez vérifier que le serveur n'est pas arrêté.",
"archive": "Archiver",
"archive-all": "Tout archiver",
"archive-board": "Archiver le tableau",
@@ -283,20 +283,20 @@
"import-board": "importer un tableau",
"import-board-c": "Importer un tableau",
"import-board-title-trello": "Importer le tableau depuis Trello",
- "import-board-title-wekan": "Import board from previous export",
- "import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
+ "import-board-title-wekan": "Importer le tableau depuis l'export précédent",
+ "import-sandstorm-backup-warning": "Ne supprimez pas les données que vous importez du tableau exporté d'origine ou de Trello avant de vérifier que la graine peut se fermer et s'ouvrir à nouveau, ou qu'une erreur \"Tableau introuvable\" survient, sinon vous perdrez vos données.",
"import-sandstorm-warning": "Le tableau importé supprimera toutes les données du tableau et les remplacera avec celles du tableau importé.",
"from-trello": "Depuis Trello",
- "from-wekan": "From previous export",
+ "from-wekan": "Depuis un export précédent",
"import-board-instruction-trello": "Dans votre tableau Trello, allez sur 'Menu', puis sur 'Plus', 'Imprimer et exporter', 'Exporter en JSON' et copiez le texte du résultat",
- "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
+ "import-board-instruction-wekan": "Dans votre tableau, allez dans 'Menu', puis 'Exporter un tableau', et copier le texte du fichier téléchargé.",
"import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".",
"import-json-placeholder": "Collez ici les données JSON valides",
"import-map-members": "Faire correspondre aux membres",
- "import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
+ "import-members-map": "Le tableau que vous venez d'importer contient des membres. Veuillez associer les membres que vous souhaitez importer à vos utilisateurs.",
"import-show-user-mapping": "Contrôler l'association des membres",
- "import-user-select": "Pick your existing user you want to use as this member",
- "importMapMembersAddPopup-title": "Select member",
+ "import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce membre",
+ "importMapMembersAddPopup-title": "Sélectionner le membre",
"info": "Version",
"initials": "Initiales",
"invalid-date": "Date invalide",
@@ -460,8 +460,8 @@
"send-smtp-test": "Envoyer un mail de test à vous-même",
"invitation-code": "Code d'invitation",
"email-invite-register-subject": "__inviter__ vous a envoyé une invitation",
- "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
- "email-smtp-test-subject": "SMTP Test Email",
+ "email-invite-register-text": "Cher __user__,\n\n__inviter__ vous invite à le rejoindre sur le tableau kanban pour collaborer.\n\nVeuillez suivre le lien ci-dessous :\n__url__\n\nVotre code d'invitation est : __icode__\n\nMerci.",
+ "email-smtp-test-subject": "Email de test SMTP",
"email-smtp-test-text": "Vous avez envoyé un mail avec succès",
"error-invitation-code-not-exist": "Ce code d'invitation n'existe pas.",
"error-notAuthorized": "Vous n'êtes pas autorisé à accéder à cette page.",
@@ -618,6 +618,8 @@
"custom-product-name": "Nom personnalisé",
"layout": "Interface",
"hide-logo": "Cacher le logo",
- "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-after-body-start": "Ajouter le HTML personnalisé après le début du <body>",
+ "add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du </body>",
+ "error-undefined": "Une erreur inconnue s'est produite",
+ "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion"
} \ No newline at end of file
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index 7302a65c..4a16edff 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index 2b13e730..e18f4c57 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -619,5 +619,7 @@
"layout": "פריסה",
"hide-logo": "הסתרת לוגו",
"add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית בתחילת ה <body>.",
- "add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית בסוף ה</body>."
+ "add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית בסוף ה</body>.",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json
index 17ab8655..ea4276d0 100644
--- a/i18n/hi.i18n.json
+++ b/i18n/hi.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index 671e9ea5..0fc4d4ea 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json
index 403471ae..a0d91b42 100644
--- a/i18n/hy.i18n.json
+++ b/i18n/hy.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index 2b67e996..e83a7c74 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Sembunyikan Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json
index f319d9ba..bbbbcc6d 100644
--- a/i18n/ig.i18n.json
+++ b/i18n/ig.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index 1e3cc86c..2b7c1e6b 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index b5728aca..2091a594 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json
index 4f80d1ea..d538eae8 100644
--- a/i18n/ka.i18n.json
+++ b/i18n/ka.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json
index 6b761777..e8d35789 100644
--- a/i18n/km.i18n.json
+++ b/i18n/km.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index aa46dc6b..91065b35 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json
index 9675b56b..999335a5 100644
--- a/i18n/lv.i18n.json
+++ b/i18n/lv.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json
index 1acbc6c3..647358fa 100644
--- a/i18n/mn.i18n.json
+++ b/i18n/mn.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index e26f86db..77f1d200 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index a71356bf..96ed163c 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index 6389b240..9c2e2ef0 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -619,5 +619,7 @@
"layout": "Układ strony",
"hide-logo": "Ukryj logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index d9589518..2189381b 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json
index b15d2d66..fc98a27b 100644
--- a/i18n/pt.i18n.json
+++ b/i18n/pt.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index df2b9c36..a54e1fa0 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 40b7529c..7eda08cc 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -109,7 +109,7 @@
"boardChangeColorPopup-title": "Изменить фон доски",
"boardChangeTitlePopup-title": "Переименовать доску",
"boardChangeVisibilityPopup-title": "Изменить настройки видимости",
- "boardChangeWatchPopup-title": "Изменить Отслеживание",
+ "boardChangeWatchPopup-title": "Режимы оповещения",
"boardMenuPopup-title": "Меню доски",
"boards": "Доски",
"board-view": "Вид доски",
@@ -272,7 +272,7 @@
"filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
"filter-to-selection": "Filter to selection",
"advanced-filter-label": "Расширенный фильтр",
- "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между Операторами. Вы можете фильтровать все настраиваемые поля, введя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\/), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I\\'m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i",
+ "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между операторами. Можно фильтровать все настраиваемые поля, вводя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, нужно взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\/), которые нужно пропустить, следует использовать \\. Например: Field1 = I\\'m. Также можно комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо, но можно изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также можно искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i",
"fullname": "Полное имя",
"header-logo-title": "Вернуться к доскам.",
"hide-system-messages": "Скрыть системные сообщения",
@@ -341,7 +341,7 @@
"moveSelectionPopup-title": "Переместить выделение",
"multi-selection": "Выбрать несколько",
"multi-selection-on": "Выбрать несколько из",
- "muted": "Заглушен",
+ "muted": "Не беспокоить",
"muted-info": "Вы НИКОГДА не будете уведомлены ни о каких изменениях в этой доске.",
"my-boards": "Мои доски",
"name": "Имя",
@@ -429,7 +429,7 @@
"view-it": "Просмотреть",
"warn-list-archived": "внимание: эта карточка из списка, который находится в Архиве",
"watch": "Следить",
- "watching": "Отслеживается",
+ "watching": "Полный контроль",
"watching-info": "Вы будете уведомлены об любых изменениях в этой доске.",
"welcome-board": "Приветственная Доска",
"welcome-swimlane": "Этап 1",
@@ -619,5 +619,7 @@
"layout": "Внешний вид",
"hide-logo": "Скрыть логотип",
"add-custom-html-after-body-start": "Добавить HTML после начала <body> ",
- "add-custom-html-before-body-end": "Добавить HTML до завершения </body>"
+ "add-custom-html-before-body-end": "Добавить HTML до завершения </body>",
+ "error-undefined": "Что-то пошло не так",
+ "error-ldap-login": "Ошибка при попытке авторизации"
} \ No newline at end of file
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index c61a9948..7816ca29 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index dfb59e4e..87da07f9 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Dölj logotypen",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json
index 040c62b9..be53203f 100644
--- a/i18n/sw.i18n.json
+++ b/i18n/sw.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index 9bfe4310..460f1f12 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index 3724db81..21965a72 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index 7ed6a648..bf2d99ac 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -619,5 +619,7 @@
"layout": "Düzen",
"hide-logo": "Logoyu Gizle",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index 18ebc4b1..0c2ebbc2 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index 08e97a0e..4a9aaeb9 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 76e062ce..35e9c280 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -619,5 +619,7 @@
"layout": "布局",
"hide-logo": "隐藏LOGO",
"add-custom-html-after-body-start": "添加定制的HTML在开始<body>之前",
- "add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后"
+ "add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index 570e878e..b2e7136a 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -619,5 +619,7 @@
"layout": "Layout",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
- "add-custom-html-before-body-end": "Add Custom HTML before </body> end"
+ "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+ "error-undefined": "Something went wrong",
+ "error-ldap-login": "An error occurred while trying to login"
} \ No newline at end of file
diff --git a/models/settings.js b/models/settings.js
index bfd844b0..674c99a0 100644
--- a/models/settings.js
+++ b/models/settings.js
@@ -260,5 +260,9 @@ if (Meteor.isServer) {
cas: isCasEnabled(),
};
},
+
+ getDefaultAuthenticationMethod() {
+ return process.env.DEFAULT_AUTHENTICATION_METHOD;
+ },
});
}
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index f0f4cc71..720ce87c 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -254,6 +254,7 @@ const myCommand :Spk.Manifest.Command = (
(key = "OAUTH2_TOKEN_ENDPOINT", value=""),
(key = "LDAP_ENABLE", value="false"),
(key = "SANDSTORM", value = "1"),
- (key = "METEOR_SETTINGS", value = "{\"public\": {\"sandstorm\": true}}")
+ (key = "METEOR_SETTINGS", value = "{\"public\": {\"sandstorm\": true}}"),
+ (key = "DEFAULT_AUTHENTICATION_METHOD", value = "")
]
);
diff --git a/snap-src/bin/config b/snap-src/bin/config
index 92532978..7eb9a990 100755
--- a/snap-src/bin/config
+++ b/snap-src/bin/config
@@ -3,7 +3,7 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
-keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES"
+keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
# default values
DESCRIPTION_MONGODB_BIND_UNIX_SOCKET="mongodb binding unix socket:\n"\
@@ -289,3 +289,8 @@ KEY_LOGOUT_ON_HOURS="logout-on-hours"
DESCRIPTION_LOGOUT_ON_MINUTES="The number of minutes"
DEFAULT_LOGOUT_ON_MINUTES=""
KEY_LOGOUT_ON_MINUTES="logout-on-minutes"
+
+
+DESCRIPTION_DEFAULT_AUTHENTICATION_METHOD="The default authentication method used if a user does not exist to create and authenticate. Method can be password or ldap."
+DEFAULT_DEFAULT_AUTHENTICATION_METHOD=""
+KEY_DEFAULT_AUTHENTICATION_METHOD="default-authentication-method"
diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help
index 804f9ad6..9c7a67a2 100755
--- a/snap-src/bin/wekan-help
+++ b/snap-src/bin/wekan-help
@@ -254,21 +254,25 @@ echo -e "Ldap Default Domain."
echo -e "The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP:"
echo -e "\t$ snap set $SNAP_NAME LDAP_DEFAULT_DOMAIN=''"
echo -e "\n"
-echo -e "Logout with timer."
-echo -e "Enable or not the option that allows to disconnect an user after a given time:"
-echo -e "\t$ snap set $SNAP_NAME LOGOUT_WITH_TIMER='true'"
-echo -e "\n"
-echo -e "Logout in."
-echo -e "Logout in how many days:"
-echo -e "\t$ snap set $SNAP_NAME LOGOUT_IN='1'"
-echo -e "\n"
-echo -e "Logout on hours."
-echo -e "Logout in how many hours:"
-echo -e "\t$ snap set $SNAP_NAME LOGOUT_ON_HOURS='9'"
-echo -e "\n"
-echo -e "Logout on minutes."
-echo -e "Logout in how many minutes:"
-echo -e "\t$ snap set $SNAP_NAME LOGOUT_ON_MINUTES='5'"
+# echo -e "Logout with timer."
+# echo -e "Enable or not the option that allows to disconnect an user after a given time:"
+# echo -e "\t$ snap set $SNAP_NAME LOGOUT_WITH_TIMER='true'"
+# echo -e "\n"
+# echo -e "Logout in."
+# echo -e "Logout in how many days:"
+# echo -e "\t$ snap set $SNAP_NAME LOGOUT_IN='1'"
+# echo -e "\n"
+# echo -e "Logout on hours."
+# echo -e "Logout in how many hours:"
+# echo -e "\t$ snap set $SNAP_NAME LOGOUT_ON_HOURS='9'"
+# echo -e "\n"
+# echo -e "Logout on minutes."
+# echo -e "Logout in how many minutes:"
+# echo -e "\t$ snap set $SNAP_NAME LOGOUT_ON_MINUTES='5'"
+# echo -e "\n"
+echo -e "Default authentication method."
+echo -e "The default authentication method used if a user does not exist to create and authenticate. Method can be password or ldap."
+echo -e "\t$ snap set $SNAP_NAME DEFAULT_AUTHENTICATION_METHOD='ldap'"
echo -e "\n"
# parse config file for supported settings keys
echo -e "wekan supports settings keys"