Browse Source

Merge branch 'edge' into meteor-1.8

Lauri Ojansivu 6 years ago
parent
commit
0155c7d8ce

+ 30 - 5
CHANGELOG.md

@@ -1,16 +1,41 @@
+# v2.43 2019-03-08 Wekan release
+
+This release adds the following new features, thanks to xet7:
+
+- [Hide Subtask boards from All Boards](https://github.com/wekan/wekan/issues/1990).
+- [Order All Boards by Starred, Color, Title and Description](https://github.com/wekan/wekan/commit/856872815292590e0c4eff2848ea1b857a318dc4).
+- [HTTP header automatic login](https://github.com/wekan/wekan/commit/ff825d6123ecfd033ccb08ce97c11cefee676104)
+  for [3rd party authentication server method](https://github.com/wekan/wekan/issues/2019) like siteminder, and any webserver that
+  handles authentication and based on it adds HTTP headers to be used for login. Please test.
+
+and adds the following partial fix, thanks to andresmanelli:
+
+- [Add migration to fix circular references](https://github.com/wekan/wekan/commit/a338e937e508568d1f6a15c5464126d30ef69a7d).
+  This [runs only once](https://github.com/wekan/wekan/issues/2209#issuecomment-470445989),
+  so later there will be another fix to make it run every time.
+
+and reverts the following change of v2.42, because they did not fix anything, thanks to xet7:
+
+- [Revert: Tried to fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/4055f451fdadfbfdef9a10be29a0eb6aed91182c).
+
+Thanks to above GitHub users for their contributions, and translators for their translations.  
+
 # v2.42 2019-03-07 Wekan release
 
-This release fixes the following bugs:
+This release tried to fix the following bugs:
 
-- [Fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/2c5628b5fbcc25427021d0b22e74577a71149c21).
-  Thanks to xet7 and qurqar[m] at IRC #wekan.
+- [Tried to fix snap mongodb-control not starting database](https://github.com/wekan/wekan/commit/2c5628b5fbcc25427021d0b22e74577a71149c21).
+  Reverted in v2.43, because it did not fix anything.
+
+Thanks to xet7 and qurqar[m] at IRC #wekan.
 
 # v2.41 2019-03-07 Wekan release
 
-This release fixes the following bugs:
+This release tried to fix the following bugs:
 
-- [Fix: Card was selected as parent card (circular reference) and now board can be not opened anymore](https://github.com/wekan/wekan/issues/2202)
+- [Partial Fix: Card was selected as parent card (circular reference) and now board can be not opened anymore](https://github.com/wekan/wekan/issues/2202)
   with [Avoid setting same card as parentCard. Avoid listing templates board in copy/move/more menus](https://github.com/wekan/wekan/commit/745f39ed20169f56b99c0339f2043f8c4ed43873).
+  This does not fully work yet, it will be fixed later.
   Thanks to andresmanelli.
 
 Thanks to above GitHub users for their contributions, and translators for their translations.

+ 8 - 0
Dockerfile

@@ -77,6 +77,10 @@ ARG LDAP_SYNC_GROUP_ROLES
 ARG LDAP_DEFAULT_DOMAIN
 ARG LDAP_SYNC_ADMIN_STATUS
 ARG LDAP_SYNC_ADMIN_GROUPS
+ARG HEADER_LOGIN_ID
+ARG HEADER_LOGIN_FIRSTNAME
+ARG HEADER_LOGIN_LASTNAME
+ARG HEADER_LOGIN_EMAIL
 ARG LOGOUT_WITH_TIMER
 ARG LOGOUT_IN
 ARG LOGOUT_ON_HOURS
@@ -163,6 +167,10 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
     LDAP_DEFAULT_DOMAIN="" \
     LDAP_SYNC_ADMIN_STATUS="" \
     LDAP_SYNC_ADMIN_GROUPS="" \
+    HEADER_LOGIN_ID="" \
+    HEADER_LOGIN_FIRSTNAME="" \
+    HEADER_LOGIN_LASTNAME="" \
+    HEADER_LOGIN_EMAIL="" \
     LOGOUT_WITH_TIMER=false \
     LOGOUT_IN="" \
     LOGOUT_ON_HOURS="" \

+ 1 - 1
Stackerfile.yml

@@ -1,5 +1,5 @@
 appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v2.42.0"
+appVersion: "v2.43.0"
 files:
   userUploads:
     - README.md

+ 2 - 1
client/components/boards/boardsList.js

@@ -25,8 +25,9 @@ BlazeComponent.extendComponent({
       archived: false,
       'members.userId': Meteor.userId(),
       type: 'board',
+      subtasksDefaultListId: null,
     }, {
-      sort: ['title'],
+      sort: { stars: -1, color: 1, title: 1, description: 1 },
     });
   },
 

+ 14 - 5
client/components/main/layouts.js

@@ -101,8 +101,14 @@ Template.defaultLayout.events({
 });
 
 async function authentication(event, instance) {
-  const match = $('#at-field-username_and_email').val();
-  const password = $('#at-field-password').val();
+
+  // If header login id is set, use it for login.
+  // Header username = Email address
+  // Header password = Login ID
+  // Not user currently: req.headers[process.env.HEADER_LOGIN_FIRSTNAME]
+  //                and  req.headers[process.env.HEADER_LOGIN_LASTNAME]
+  const match = req.headers[process.env.HEADER_LOGIN_EMAIL] || $('#at-field-username_and_email').val();
+  const password = req.headers[process.env.HEADER_LOGIN_ID] || $('#at-field-password').val();
 
   if (!match || !password) return;
 
@@ -110,9 +116,12 @@ async function authentication(event, instance) {
 
   if (result === 'password') return;
 
-  // Stop submit #at-pwd-form
-  event.preventDefault();
-  event.stopImmediatePropagation();
+  // If header login id is not set, don't try to login automatically.
+  if (!process.env.HEADER_LOGIN_ID) {
+    // Stop submit #at-pwd-form
+    event.preventDefault();
+    event.stopImmediatePropagation();
+  }
 
   switch (result) {
   case 'ldap':

+ 7 - 0
docker-compose.yml

@@ -508,6 +508,13 @@ services:
       # Comma separated list of admin group names to sync.
       #- LDAP_SYNC_ADMIN_GROUPS=group1,group2
       #---------------------------------------------------------------------
+      # Login to LDAP automatically with HTTP header.
+      # In below example for siteminder, at right side of = is header name.
+      #- HEADER_LOGIN_ID=BNPPUID
+      #- HEADER_LOGIN_FIRSTNAME=BNPPFIRSTNAME
+      #- HEADER_LOGIN_LASTNAME=BNPPLASTNAME
+      #- HEADER_LOGIN_EMAIL=BNPPEMAILADDRESS
+      #---------------------------------------------------------------------
       # ==== LOGOUT TIMER, probably does not work yet ====
       # LOGOUT_WITH_TIMER : Enables or not the option logout with timer
       # example : LOGOUT_WITH_TIMER=true

+ 22 - 22
i18n/ru.i18n.json

@@ -1,37 +1,37 @@
 {
     "accept": "Принять",
     "act-activity-notify": "Уведомление о действиях участников",
-    "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-    "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "act-addAttachment": "прикрепил вложение __attachment__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-deleteAttachment": "удалил вложение __attachment__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-addSubtask": "добавил подзадачу __subtask__ для карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-addLabel": "Добавлена метка __label__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-removeLabel": "Снята метка __label__ с карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-addChecklist": "добавил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-addChecklistItem": "добавил пункт __checklistItem__ в контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-removeChecklist": "удалил контрольный список __checklist__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-removeChecklistItem": "удалил пункт __checklistItem__ из контрольного списка __checkList__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-checkedItem": "отметил __checklistItem__ в контрольном списке __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-uncheckedItem": "снял __checklistItem__ в контрольном списке __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-completeChecklist": "завершил контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-uncompleteChecklist": "вновь открыл контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-addComment": "написал в карточке __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "act-createBoard": "создал доску __board__",
-    "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
-    "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "act-createCard": "создал карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
+    "act-createCustomField": "создал поле __customField__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__\n",
     "act-createList": "добавил список __list__ на доску __board__",
     "act-addBoardMember": "добавил участника __member__ на доску __board__",
     "act-archivedBoard": "Доска __board__ перемещена в Архив",
     "act-archivedCard": "Карточка __card__ из списка __list__ с дорожки __swimlane__ доски __board__ перемещена в Архив",
-    "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
+    "act-archivedList": "Список __list__ на дорожке __swimlane__ доски __board__ перемещен в Архив",
     "act-archivedSwimlane": "Дорожка __swimlane__ на доске __board__ перемещена в Архив",
     "act-importBoard": "импортировал доску __board__",
-    "act-importCard": "imported card  __card__ to list __list__ at swimlane __swimlane__ at board __board__",
+    "act-importCard": "импортировал карточку __card__ в список __list__ на дорожку __swimlane__ доски __board__",
     "act-importList": "импортировал список __list__ на дорожку __swimlane__ доски __board__",
-    "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "act-joinMember": "добавил участника __member__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "act-moveCard": "переместил карточку __card__ из списка __oldList__ с дорожки __oldSwimlane__ доски __oldBoard__ в список __list__ на дорожку __swimlane__ доски __board__",
     "act-removeBoardMember": "удалил участника __member__ с доски __board__",
     "act-restoredCard": "восстановил карточку __card__ в список __list__ на дорожку __swimlane__ доски __board__",
-    "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "act-unjoinMember": "удалил участника __member__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "act-withBoardTitle": "__board__",
     "act-withCardTitle": "[__board__] __card__",
     "actions": "Действия",
@@ -56,14 +56,14 @@
     "activity-unchecked-item": "снял %s в контрольном списке %s в %s",
     "activity-checklist-added": "добавил контрольный список в %s",
     "activity-checklist-removed": "удалил контрольный список из %s",
-    "activity-checklist-completed": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "activity-checklist-completed": "завершил контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "activity-checklist-uncompleted": "вновь открыл контрольный список %s в %s",
     "activity-checklist-item-added": "добавил пункт в контрольный список '%s' в карточке %s",
     "activity-checklist-item-removed": "удалил пункт из контрольного списка '%s' в карточке %s",
     "add": "Создать",
     "activity-checked-item-card": "отметил %s в контрольном списке %s",
     "activity-unchecked-item-card": "снял %s в контрольном списке %s",
-    "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+    "activity-checklist-completed-card": "завершил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "activity-checklist-uncompleted-card": "вновь открыл контрольный список %s",
     "add-attachment": "Добавить вложение",
     "add-board": "Добавить доску",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v2.42.0",
+  "version": "v2.43.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

+ 8 - 0
releases/virtualbox/start-wekan.sh

@@ -251,6 +251,14 @@
         #export LDAP_SYNC_ADMIN_STATUS=true
         # Comma separated list of admin group names.
         #export LDAP_SYNC_ADMIN_GROUPS=group1,group2
+        #---------------------------------------------------------------------
+        # Login to LDAP automatically with HTTP header.
+        # In below example for siteminder, at right side of = is header name.
+        #export HEADER_LOGIN_ID=BNPPUID
+        #export HEADER_LOGIN_FIRSTNAME=BNPPFIRSTNAME
+        #export HEADER_LOGIN_LASTNAME=BNPPLASTNAME
+        #export HEADER_LOGIN_EMAIL=BNPPEMAILADDRESS
+        #---------------------------------------------------------------------
         # LOGOUT_WITH_TIMER : Enables or not the option logout with timer
         # example : LOGOUT_WITH_TIMER=true
         #export LOGOUT_WITH_TIMER=

+ 2 - 2
sandstorm-pkgdef.capnp

@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
     appTitle = (defaultText = "Wekan"),
     # The name of the app as it is displayed to the user.
 
-    appVersion = 244,
+    appVersion = 245,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "2.42.0~2019-03-07"),
+    appMarketingVersion = (defaultText = "2.43.0~2019-03-08"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 8 - 0
server/migrations.js

@@ -517,3 +517,11 @@ Migrations.add('add-templates', () => {
     });
   });
 });
+
+Migrations.add('fix-circular-reference', () => {
+  Cards.find().forEach((card) => {
+    if (card.parentId === card._id) {
+      Cards.update(card._id, {$set: {parentId: ''}}, noValidateMulti);
+    }
+  });
+});

+ 17 - 1
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="DEBUG 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 EMAIL_NOTIFICATION_TIMEOUT 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 OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_EMAIL_MAP 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 LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
+keys="DEBUG 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 EMAIL_NOTIFICATION_TIMEOUT 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 OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_EMAIL_MAP 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 LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
 
 # default values
 DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
@@ -326,6 +326,22 @@ DESCRIPTION_LDAP_DEFAULT_DOMAIN="The default domain of the ldap it is used to cr
 DEFAULT_LDAP_DEFAULT_DOMAIN=""
 KEY_LDAP_DEFAULT_DOMAIN="ldap-default-domain"
 
+DESCRIPTION_HEADER_LOGIN_ID="Header login ID. Example for siteminder: BNPPUID"
+DEFAULT_HEADER_LOGIN_ID=""
+KEY_HEADER_LOGIN_ID="header-login-id"
+
+DESCRIPTION_HEADER_LOGIN_FIRSTNAME="Header login firstname. Example for siteminder: BNPPFIRSTNAME"
+DEFAULT_HEADER_LOGIN_FIRSTNAME="Header login firstname. Example for siteminder: BNPPFIRSTNAME"
+KEY_HEADER_LOGIN_FIRSTNAME="header-login-firstname"
+
+DESCRIPTION_HEADER_LOGIN_LASTNAME="Header login lastname. Example for siteminder: BNPPLASTNAME"
+DEFAULT_HEADER_LOGIN_LASTNAME="Header login firstname. Example for siteminder: BNPPLASTNAME"
+KEY_HEADER_LOGIN_LASTNAME="header-login-lastname"
+
+DESCRIPTION_HEADER_LOGIN_EMAIL="Header login email. Example for siteminder: BNPPEMAILADDRESS"
+DEFAULT_HEADER_LOGIN_EMAIL="Header login email. Example for siteminder: BNPPEMAILADDRESS"
+KEY_HEADER_LOGIN_EMAIL="header-login-email"
+
 DESCRIPTION_LOGOUT_WITH_TIMER="Enables or not the option logout with timer"
 DEFAULT_LOGOUT_WITH_TIMER="false"
 KEY_LOGOUT_WITH_TIMER="logout-with-timer"

+ 1 - 1
snap-src/bin/mongodb-control

@@ -29,4 +29,4 @@ if [ "x" != "x${MONGODB_PORT}" ]; then
 fi
 echo "mongodb bind options: $BIND_OPTIONS"
 
-mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $BIND_OPTIONS
+mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/mongodb.log --logappend --journal $BIND_OPTIONS --smallfiles

+ 7 - 0
snap-src/bin/wekan-help

@@ -307,6 +307,13 @@ 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 "Login to LDAP automatically with HTTP header."
+echo -e "In below example for siteminder, at right side of = is header name."
+echo -e "\t$ snap set $SNAP_NAME header-login-id='BNPPUID'"
+echo -e "\t$ snap set $SNAP_NAME header-login-firstname='BNPPFIRSTNAME'"
+echo -e "\t$ snap set $SNAP_NAME header-login-lastname='BNPPLASTNAME'"
+echo -e "\t$ snap set $SNAP_NAME header-login-email='BNPPEMAILADDRESS'"
+echo -e "\n"
 echo -e "Logout in."
 echo -e "Logout in how many days:"
 echo -e "\t$ snap set $SNAP_NAME logout-in='1'"

+ 7 - 0
start-wekan.bat

@@ -254,6 +254,13 @@ REM SET LDAP_SYNC_ADMIN_STATUS=true
 REM # Comma separated list of admin group names to sync.
 REM SET LDAP_SYNC_ADMIN_GROUPS=group1,group2
 
+REM # Login to LDAP automatically with HTTP header.
+REM # In below example for siteminder, at right side of = is header name.
+REM SET HEADER_LOGIN_ID=BNPPUID
+REM SET HEADER_LOGIN_FIRSTNAME=BNPPFIRSTNAME
+REM SET HEADER_LOGIN_LASTNAME=BNPPLASTNAME
+REM SET HEADER_LOGIN_EMAIL=BNPPEMAILADDRESS
+
 REM ------------------------------------------------
 
 REM # LOGOUT_WITH_TIMER : Enables or not the option logout with timer

+ 8 - 0
start-wekan.sh

@@ -269,6 +269,14 @@ function wekan_repo_check(){
       #export LDAP_SYNC_ADMIN_STATUS=true
       # Comma separated list of admin group names to sync.
       #export LDAP_SYNC_ADMIN_GROUPS=group1,group2
+      #---------------------------------------------------------------------
+      # Login to LDAP automatically with HTTP header.
+      # In below example for siteminder, at right side of = is header name.
+      #export HEADER_LOGIN_ID=BNPPUID
+      #export HEADER_LOGIN_FIRSTNAME=BNPPFIRSTNAME
+      #export HEADER_LOGIN_LASTNAME=BNPPLASTNAME
+      #export HEADER_LOGIN_EMAIL=BNPPEMAILADDRESS
+      #---------------------------------------------------------------------
       # LOGOUT_WITH_TIMER : Enables or not the option logout with timer
       # example : LOGOUT_WITH_TIMER=true
       #export LOGOUT_WITH_TIMER=