Sfoglia il codice sorgente

- Remove mouse scroll settings of already removed custom scrollbar.
- Add setting OAUTH2_ADFS_ENABLED=false
- Add testing for both string and boolean version of true

Thanks to xet7 !

Fixes #2949

Lauri Ojansivu 4 anni fa
parent
commit
f6bdb4d694

+ 1 - 3
.devcontainer/Dockerfile

@@ -39,6 +39,7 @@ ENV \
     TRUSTED_URL="" \
     WEBHOOKS_ATTRIBUTES="" \
     OAUTH2_ENABLED=false \
+    OAUTH2_ADFS_ENABLED=false \
     OAUTH2_LOGIN_STYLE=redirect \
     OAUTH2_CLIENT_ID="" \
     OAUTH2_SECRET="" \
@@ -112,9 +113,6 @@ ENV \
     CORS_ALLOW_HEADERS="" \
     CORS_EXPOSE_HEADERS="" \
     DEFAULT_AUTHENTICATION_METHOD="" \
-    SCROLLINERTIA="0" \
-    SCROLLAMOUNT="auto" \
-    SCROLLDELTAFACTOR="auto" \
     PASSWORD_LOGIN_ENABLED=true
 
 # Install OS

+ 1 - 3
Dockerfile

@@ -41,6 +41,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
     TRUSTED_URL="" \
     WEBHOOKS_ATTRIBUTES="" \
     OAUTH2_ENABLED=false \
+    OAUTH2_ADFS_ENABLED=false \
     OAUTH2_LOGIN_STYLE=redirect \
     OAUTH2_CLIENT_ID="" \
     OAUTH2_SECRET="" \
@@ -114,9 +115,6 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
     CORS_ALLOW_HEADERS="" \
     CORS_EXPOSE_HEADERS="" \
     DEFAULT_AUTHENTICATION_METHOD="" \
-    SCROLLINERTIA="0" \
-    SCROLLAMOUNT="auto" \
-    SCROLLDELTAFACTOR="auto" \
     PASSWORD_LOGIN_ENABLED=true
 
 # Copy the app to the image

+ 2 - 6
docker-compose.yml

@@ -242,12 +242,6 @@ services:
       # https://github.com/wekan/wekan/pull/2560
       - RICHER_CARD_COMMENT_EDITOR=false
       #---------------------------------------------------------------
-      # ==== MOUSE SCROLL ====
-      # https://github.com/wekan/wekan/issues/2949
-      - SCROLLINERTIA=0
-      - SCROLLAMOUNT=auto
-      - SCROLLDELTAFACTOR=auto
-      #---------------------------------------------------------------
       # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
       # https://github.com/wekan/wekan/issues/2518
       - CARD_OPENED_WEBHOOK_ENABLED=false
@@ -336,6 +330,8 @@ services:
       # 2) Configure the environment variables. This differs slightly
       #     by installation type, but make sure you have the following:
       #- OAUTH2_ENABLED=true
+      # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
+      #- OAUTH2_ADFS_ENABLED=false
       # OAuth2 login style: popup or redirect.
       #- OAUTH2_LOGIN_STYLE=redirect
       # Application GUID captured during app registration:

+ 11 - 4
models/settings.js

@@ -187,19 +187,26 @@ if (Meteor.isServer) {
   }
 
   function isLdapEnabled() {
-    return process.env.LDAP_ENABLE === 'true';
+    return (
+      process.env.LDAP_ENABLE === 'true' || process.env.LDAP_ENABLE === true
+    );
   }
 
   function isOauth2Enabled() {
-    return process.env.OAUTH2_ENABLED === 'true';
+    return (
+      process.env.OAUTH2_ENABLED === 'true' ||
+      process.env.OAUTH2_ENABLED === true
+    );
   }
 
   function isCasEnabled() {
-    return process.env.CAS_ENABLED === 'true';
+    return (
+      process.env.CAS_ENABLED === 'true' || process.env.CAS_ENABLED === true
+    );
   }
 
   function isApiEnabled() {
-    return process.env.WITH_API === 'true';
+    return process.env.WITH_API === 'true' || process.env.WITH_API === true;
   }
 
   Meteor.methods({

+ 4 - 4
packages/wekan-oidc/oidc_server.js

@@ -9,9 +9,9 @@ OAuth.registerService('oidc', 2, null, function (query) {
   var accessToken = token.access_token || token.id_token;
   var expiresAt = (+new Date) + (1000 * parseInt(token.expires_in, 10));
 
-  var claimsInAccessToken = process.env.OAUTH2_ADFS || false; 
-  
-  var userinfo; 
+  var claimsInAccessToken = (process.env.OAUTH2_ADFS_ENABLED === 'true' || process.env.OAUTH2_ADFS_ENABLED === true) || false;
+
+  var userinfo;
   if(claimsInAccessToken)
   {
     // hack when using custom claims in the accessToken. On premise ADFS
@@ -22,7 +22,7 @@ OAuth.registerService('oidc', 2, null, function (query) {
     // normal behaviour, getting the claims from UserInfo endpoint.
     userinfo = getUserInfo(accessToken);
   }
-  
+
   if (userinfo.ocs) userinfo = userinfo.ocs.data; // Nextcloud hack
   if (userinfo.metadata) userinfo = userinfo.metadata // Openshift hack
   if (debug) console.log('XXX: userinfo:', userinfo);

+ 362 - 346
releases/virtualbox/start-wekan.sh

@@ -1,351 +1,367 @@
 # If you want to restart even on crash, uncomment while and done lines.
 
 #while true; do
-        cd ~/repos/wekan/.build/bundle
-        #---------------------------------------------
-        # Debug OIDC OAuth2 etc.
-        #export export DEBUG=true
-        #---------------------------------------------
-        export MONGO_URL='mongodb://127.0.0.1:27017/admin'
-        # ROOT_URL EXAMPLES FOR WEBSERVERS: https://github.com/wekan/wekan/wiki/Settings
-        # Production: https://example.com/wekan
-        # Local: http://localhost:3000
-        #export ipaddress=$(ifdata -pa eth0)
-        export ROOT_URL='http://localhost'
-        #---------------------------------------------
-        # Working email IS NOT REQUIRED to use Wekan.
-        # https://github.com/wekan/wekan/wiki/Adding-users
-        # https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
-        # https://github.com/wekan/wekan-mongodb/blob/master/docker-compose.yml
-        export MAIL_URL='smtp://user:pass@mailserver.example.com:25/'
-        export MAIL_FROM='Wekan Support <support@example.com>'
-        # This is local port where Wekan Node.js runs, same as below on Caddyfile settings.
-        export PORT=80
-        #---------------------------------------------
-        # Wekan Export Board works when WITH_API='true'.
-        # If you disable Wekan API, Export Board does not work.
-        export WITH_API='true'
-        #---------------------------------------------------------------
-        # ==== PASSWORD BRUTE FORCE PROTECTION ====
-        #https://atmospherejs.com/lucasantoniassi/accounts-lockout
-        #Defaults below. Uncomment to change. wekan/server/accounts-lockout.js
-        #export ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3
-        #export ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60
-        #export ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15
-        #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
-        #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
-        #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
-        #---------------------------------------------------------------
-        # ==== RICH TEXT EDITOR IN CARD COMMENTS ====
-        # https://github.com/wekan/wekan/pull/2560
-        export RICHER_CARD_COMMENT_EDITOR=true
-        #---------------------------------------------------------------
-        # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
-        export CARD_OPENED_WEBHOOK_ENABLED=false
-        #---------------------------------------------------------------
-        # ==== Allow to shrink attached/pasted image ====
-        # https://github.com/wekan/wekan/pull/2544
-        #export MAX_IMAGE_PIXEL=1024
-        #export IMAGE_COMPRESS_RATIO=80
-        #---------------------------------------------------------------
-        # ==== BIGEVENTS DUE ETC NOTIFICATIONS =====
-        # https://github.com/wekan/wekan/pull/2541
-        # Introduced a system env var BIGEVENTS_PATTERN default as "NONE",
-        # so any activityType matches the pattern, system will send out
-        # notifications to all board members no matter they are watching
-        # or tracking the board or not. Owner of the wekan server can
-        # disable the feature by setting this variable to "NONE" or
-        # change the pattern to any valid regex. i.e. '|' delimited
-        # activityType names.
-        # a) Example
-        #export BIGEVENTS_PATTERN=due
-        # b) All
-        #export BIGEVENTS_PATTERN=received|start|due|end
-        # c) Disabled
-        export BIGEVENTS_PATTERN=NONE
-        #---------------------------------------------------------------
-        # ==== EMAIL DUE DATE NOTIFICATION =====
-        # https://github.com/wekan/wekan/pull/2536
-        # System timelines will be showing any user modification for
-        # dueat startat endat receivedat, also notification to
-        # the watchers and if any card is due, about due or past due.
-        #
-        # Notify due days, default is None. 
-        #export NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=2,0
-        # it will notify user 2 days before due day and on the due day
-        #
-        # Notify due at hour of day. Default every morning at 8am. Can be 0-23.
-        # If env variable has parsing error, use default. Notification sent to watchers.
-        #export NOTIFY_DUE_AT_HOUR_OF_DAY=8
-        #-----------------------------------------------------------------
-        # ==== EMAIL NOTIFICATION TIMEOUT, ms =====
-        # Defaut: 30000 ms = 30s
-        #export EMAIL_NOTIFICATION_TIMEOUT=30000
-        #-----------------------------------------------------------------
-        # CORS: Set Access-Control-Allow-Origin header. Example: *
-        #export CORS=*
-        # To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
-        #export CORS_ALLOW_HEADERS=Authorization,Content-Type
-        # To enable the Set Access-Control-Expose-Headers header.  This is not needed for typical CORS situations. Example: *
-        #export CORS_EXPOSE_HEADERS=*
-        #---------------------------------------------
-        ## Optional: Integration with Matomo https://matomo.org that is installed to your server
-        ## The address of the server where Matomo is hosted:
-        ##export MATOMO_ADDRESS=https://example.com/matomo
-        #export MATOMO_ADDRESS=
-        ## The value of the site ID given in Matomo server for Wekan
-        # Example: export MATOMO_SITE_ID=123456789
-        #export MATOMO_SITE_ID=''
-        ## The option do not track which enables users to not be tracked by matomo"
-        #Example: export MATOMO_DO_NOT_TRACK=false
-        #export MATOMO_DO_NOT_TRACK=true
-        ## The option that allows matomo to retrieve the username:
-        # Example: export MATOMO_WITH_USERNAME=true
-        #export MATOMO_WITH_USERNAME='false'
-        # Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
-        # Setting this to false is not recommended, it also disables all other browser policy protections
-        # and allows all iframing etc. See wekan/server/policy.js
-        # Default value: true
-        export BROWSER_POLICY_ENABLED=true
-        # When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
-        # Example: export TRUSTED_URL=http://example.com
-        export TRUSTED_URL=''
-        # What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
-        # Example: export WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
-        export WEBHOOKS_ATTRIBUTES=''
-        #---------------------------------------------
-        # ==== OAUTH2 AZURE ====
-        # https://github.com/wekan/wekan/wiki/Azure
-        # 1) Register the application with Azure. Make sure you capture
-        #    the application ID as well as generate a secret key.
-        # 2) Configure the environment variables. This differs slightly
-        #     by installation type, but make sure you have the following:
-        #export OAUTH2_ENABLED=true
-        # OAuth2 login style: popup or redirect.
-        #export OAUTH2_LOGIN_STYLE=redirect
-        # Application GUID captured during app registration:
-        #export OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
-        # Secret key generated during app registration:
-        #export OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-        #export OAUTH2_SERVER_URL=https://login.microsoftonline.com/
-        #export OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize
-        #export OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo
-        #export OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token
-        # OAUTH2 ID Token Whitelist Fields.
-        #export OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[]
-        # OAUTH2 Request Permissions.
-        #export OAUTH2_REQUEST_PERMISSIONS='openid profile email'
-        # The claim name you want to map to the unique ID field:
-        #export OAUTH2_ID_MAP=email
-        # The claim name you want to map to the username field:
-        #export OAUTH2_USERNAME_MAP=email
-        # The claim name you want to map to the full name field:
-        #export OAUTH2_FULLNAME_MAP=name
-        # Tthe claim name you want to map to the email field:
-        #export OAUTH2_EMAIL_MAP=email
-        #-----------------------------------------------------------------
-        # ==== OAUTH2 KEYCLOAK ====
-        # https://github.com/wekan/wekan/wiki/Keycloak  <== MAPPING INFO, REQUIRED
-        #export OAUTH2_ENABLED=true
-        # OAuth2 login style: popup or redirect.
-        #export OAUTH2_LOGIN_STYLE=redirect
-        #export OAUTH2_CLIENT_ID=<Keycloak create Client ID>
-        #export OAUTH2_SERVER_URL=<Keycloak server name>/auth
-        #export OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
-        #export OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
-        #export OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
-        #export OAUTH2_SECRET=<keycloak client secret>
-        #-----------------------------------------------------------------
-        # ==== OAUTH2 DOORKEEPER ====
-        # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
-        # https://github.com/wekan/wekan/issues/1874
-        # https://github.com/wekan/wekan/wiki/OAuth2
-        # Enable the OAuth2 connection
-        #export OAUTH2_ENABLED=true
-        # OAuth2 login style: popup or redirect.
-        #export OAUTH2_LOGIN_STYLE=redirect
-        # OAuth2 Client ID.
-        #export OAUTH2_CLIENT_ID=abcde12345
-        # OAuth2 Secret.
-        #export OAUTH2_SECRET=54321abcde
-        # OAuth2 Server URL.
-        #export OAUTH2_SERVER_URL=https://chat.example.com
-        # OAuth2 Authorization Endpoint.
-        #export OAUTH2_AUTH_ENDPOINT=/oauth/authorize
-        # OAuth2 Userinfo Endpoint.
-        #export OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
-        # OAuth2 Token Endpoint.
-        #export OAUTH2_TOKEN_ENDPOINT=/oauth/token
-        # OAuth2 ID Mapping
-        #export OAUTH2_ID_MAP=
-        # OAuth2 Username Mapping
-        #export OAUTH2_USERNAME_MAP=
-        # OAuth2 Fullname Mapping
-        #export OAUTH2_FULLNAME_MAP=
-        # OAuth2 Email Mapping
-        #export OAUTH2_EMAIL_MAP=
-        #---------------------------------------------
-        # LDAP_ENABLE : Enable or not the connection by the LDAP
-        # example :  export LDAP_ENABLE=true
-        #export LDAP_ENABLE=false
-        # LDAP_PORT : The port of the LDAP server
-        # example :  export LDAP_PORT=389
-        #export LDAP_PORT=389
-        # LDAP_HOST : The host server for the LDAP server
-        # example :  export LDAP_HOST=localhost
-        #export LDAP_HOST=
-        # LDAP_BASEDN : The base DN for the LDAP Tree
-        # example :  export LDAP_BASEDN=ou=user,dc=example,dc=org
-        #export LDAP_BASEDN=
-        # LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
-        # example :  export LDAP_LOGIN_FALLBACK=true
-        #export LDAP_LOGIN_FALLBACK=false
-        # LDAP_RECONNECT : Reconnect to the server if the connection is lost
-        # example :  export LDAP_RECONNECT=false
-        #export LDAP_RECONNECT=true
-        # LDAP_TIMEOUT : Overall timeout, in milliseconds
-        # example :  export LDAP_TIMEOUT=12345
-        #export LDAP_TIMEOUT=10000
-        # LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
-        # example :  export LDAP_IDLE_TIMEOUT=12345
-        #export LDAP_IDLE_TIMEOUT=10000
-        # LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
-        # example :  export LDAP_CONNECT_TIMEOUT=12345
-        #export LDAP_CONNECT_TIMEOUT=10000
-        # LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
-        # example :  export LDAP_AUTHENTIFICATION=true
-        #export LDAP_AUTHENTIFICATION=false
-        # LDAP_AUTHENTIFICATION_USERDN : The search user DN
-        # example :  export LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
-        #export LDAP_AUTHENTIFICATION_USERDN=
-        # LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
-        # example : AUTHENTIFICATION_PASSWORD=admin
-        #export LDAP_AUTHENTIFICATION_PASSWORD=
-        # LDAP_LOG_ENABLED : Enable logs for the module
-        # example :  export LDAP_LOG_ENABLED=true
-        #export LDAP_LOG_ENABLED=false
-        # LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
-        # example :  export LDAP_BACKGROUND_SYNC=true
-        #export LDAP_BACKGROUND_SYNC=false
-        # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
-        # At which interval does the background task sync in milliseconds.
-        # Leave this unset, so it uses default, and does not crash.
-        # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
-        export LDAP_BACKGROUND_SYNC_INTERVAL=''
-        # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
-        # example :  export LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
-        #export LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
-        # LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
-        # example :  export LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
-        #export LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
-        # LDAP_ENCRYPTION : If using LDAPS
-        # example :  export LDAP_ENCRYPTION=ssl
-        #export LDAP_ENCRYPTION=false
-        # LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
-        # example :  export LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
-        #export LDAP_CA_CERT=
-        # LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
-        # example :  export LDAP_REJECT_UNAUTHORIZED=true
-        #export LDAP_REJECT_UNAUTHORIZED=false
-        # Option to login to the LDAP server with the user's own username and password, instead of an administrator key. Default: false (use administrator key).
-        #export LDAP_USER_AUTHENTICATION=true
-        # Which field is used to find the user for the user authentication. Default: uid.
-        #export LDAP_USER_AUTHENTICATION_FIELD=uid
-        # LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
-        # example :  export LDAP_USER_SEARCH_FILTER=
-        #export LDAP_USER_SEARCH_FILTER=
-        # LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
-        # example :  export LDAP_USER_SEARCH_SCOPE=one
-        #export LDAP_USER_SEARCH_SCOPE=
-        # LDAP_USER_SEARCH_FIELD : Which field is used to find the user
-        # example :  export LDAP_USER_SEARCH_FIELD=uid
-        #export LDAP_USER_SEARCH_FIELD=
-        # LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
-        # example :  export LDAP_SEARCH_PAGE_SIZE=12345
-        #export LDAP_SEARCH_PAGE_SIZE=0
-        # LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
-        # example :  export LDAP_SEARCH_SIZE_LIMIT=12345
-        #export LDAP_SEARCH_SIZE_LIMIT=0
-        # LDAP_GROUP_FILTER_ENABLE : Enable group filtering
-        # example :  export LDAP_GROUP_FILTER_ENABLE=true
-        #export LDAP_GROUP_FILTER_ENABLE=false
-        # LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
-        # example :  export LDAP_GROUP_FILTER_OBJECTCLASS=group
-        #export LDAP_GROUP_FILTER_OBJECTCLASS=
-        # LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
-        # example :
-        #export LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
-        # LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
-        # example :
-        #export LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
-        # LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
-        # example :
-        #export LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
-        # LDAP_GROUP_FILTER_GROUP_NAME :
-        # example :
-        #export LDAP_GROUP_FILTER_GROUP_NAME=
-        # LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
-        # example :  export LDAP_UNIQUE_IDENTIFIER_FIELD=guid
-        #export LDAP_UNIQUE_IDENTIFIER_FIELD=
-        # LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
-        # example :  export LDAP_UTF8_NAMES_SLUGIFY=false
-        #export LDAP_UTF8_NAMES_SLUGIFY=true
-        # LDAP_USERNAME_FIELD : Which field contains the ldap username
-        # example :  export LDAP_USERNAME_FIELD=username
-        #export LDAP_USERNAME_FIELD=
-        # LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
-        # example :  export LDAP_FULLNAME_FIELD=fullname
-        #export LDAP_FULLNAME_FIELD=
-        # LDAP_MERGE_EXISTING_USERS :
-        # example :  export LDAP_MERGE_EXISTING_USERS=true
-        #export LDAP_MERGE_EXISTING_USERS=false
-        # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
-        # example: LDAP_EMAIL_MATCH_ENABLE=true
-        #export LDAP_EMAIL_MATCH_ENABLE=false
-        # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
-        # example: LDAP_EMAIL_MATCH_REQUIRE=true
-        #export LDAP_EMAIL_MATCH_REQUIRE=false
-        # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
-        # example: LDAP_EMAIL_MATCH_VERIFIED=true
-        #export LDAP_EMAIL_MATCH_VERIFIED=false
-        # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
-        # example: LDAP_EMAIL_FIELD=mail
-        #export LDAP_EMAIL_FIELD=
-        # LDAP_SYNC_USER_DATA :
-        # example :  export LDAP_SYNC_USER_DATA=true
-        #export LDAP_SYNC_USER_DATA=false
-        # LDAP_SYNC_USER_DATA_FIELDMAP :
-        # example :  export LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
-        #export LDAP_SYNC_USER_DATA_FIELDMAP=
-        # LDAP_SYNC_GROUP_ROLES :
-        # example :
-        #export LDAP_SYNC_GROUP_ROLES=
-        # LDAP_DEFAULT_DOMAIN : 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
-        # example :
-        #export LDAP_DEFAULT_DOMAIN=
-        # Enable/Disable syncing of admin status based on ldap groups:
-        #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=HEADERUID
-        #export HEADER_LOGIN_FIRSTNAME=HEADERFIRSTNAME
-        #export HEADER_LOGIN_LASTNAME=HEADERLASTNAME
-        #export HEADER_LOGIN_EMAIL=HEADEREMAILADDRESS
-        #---------------------------------------------------------------------
-        # LOGOUT_WITH_TIMER : Enables or not the option logout with timer
-        # example : LOGOUT_WITH_TIMER=true
-        #export LOGOUT_WITH_TIMER=
-        # LOGOUT_IN : The number of days
-        # example : LOGOUT_IN=1
-        #export LOGOUT_IN=
-        #export LOGOUT_ON_HOURS=
-        # LOGOUT_ON_MINUTES : The number of minutes
-        # example : LOGOUT_ON_MINUTES=55
-        #export LOGOUT_ON_MINUTES=
+      cd ~/repos/wekan/.build/bundle
+      #---------------------------------------------
+      # Debug OIDC OAuth2 etc.
+      #export DEBUG=true
+      #---------------------------------------------
+      export MONGO_URL='mongodb://127.0.0.1:27017/wekan'
+      #---------------------------------------------
+      # Production: https://example.com/wekan
+      # Local: http://localhost:2000
+      #export ipaddress=$(ifdata -pa eth0)
+      export ROOT_URL='http://localhost:2000'
+      #---------------------------------------------
+      # https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
+      # https://github.com/wekan/wekan-mongodb/blob/master/docker-compose.yml
+      export MAIL_URL='smtp://user:pass@mailserver.example.com:25/'
+      #---------------------------------------------
+      #export KADIRA_OPTIONS_ENDPOINT=http://127.0.0.1:11011
+      #---------------------------------------------
+      # This is local port where Wekan Node.js runs, same as below on Caddyfile settings.
+      export PORT=2000
+      #---------------------------------------------
+      # Wekan Export Board works when WITH_API=true.
+      # If you disable Wekan API with false, Export Board does not work.
+      export WITH_API='true'
+      #---------------------------------------------------------------
+      # ==== PASSWORD BRUTE FORCE PROTECTION ====
+      #https://atmospherejs.com/lucasantoniassi/accounts-lockout
+      #Defaults below. Uncomment to change. wekan/server/accounts-lockout.js
+      #export ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3
+      #export ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60
+      #export ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15
+      #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3
+      #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60
+      #export ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15
+      #---------------------------------------------------------------
+      # ==== RICH TEXT EDITOR IN CARD COMMENTS ====
+      # https://github.com/wekan/wekan/pull/2560
+      export RICHER_CARD_COMMENT_EDITOR=false
+      #---------------------------------------------------------------
+      # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
+      export CARD_OPENED_WEBHOOK_ENABLED=false
+      #---------------------------------------------------------------
+      # ==== Allow to shrink attached/pasted image ====
+      # https://github.com/wekan/wekan/pull/2544
+      #export MAX_IMAGE_PIXEL=1024
+      #export IMAGE_COMPRESS_RATIO=80
+      #---------------------------------------------------------------
+      # ==== NOTIFICATION TRAY AFTER READ DAYS BEFORE REMOVE =====
+      # Number of days after a notification is read before we remove it.
+      # Default: 2
+      #- NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE=2
+      #---------------------------------------------------------------
+      # ==== BIGEVENTS DUE ETC NOTIFICATIONS =====
+      # https://github.com/wekan/wekan/pull/2541
+      # Introduced a system env var BIGEVENTS_PATTERN default as "NONE",
+      # so any activityType matches the pattern, system will send out
+      # notifications to all board members no matter they are watching
+      # or tracking the board or not. Owner of the wekan server can
+      # disable the feature by setting this variable to "NONE" or
+      # change the pattern to any valid regex. i.e. '|' delimited
+      # activityType names.
+      # a) Example
+      #export BIGEVENTS_PATTERN=due
+      # b) All
+      #export BIGEVENTS_PATTERN=received|start|due|end
+      # c) Disabled
+      export BIGEVENTS_PATTERN=NONE
+      #---------------------------------------------------------------
+      # ==== EMAIL DUE DATE NOTIFICATION =====
+      # https://github.com/wekan/wekan/pull/2536
+      # System timelines will be showing any user modification for
+      # dueat startat endat receivedat, also notification to
+      # the watchers and if any card is due, about due or past due.
+      #
+      # Notify due days, default is None.
+      #export NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=2,0
+      # it will notify user 2 days before due day and on the due day
+      #
+      # Notify due at hour of day. Default every morning at 8am. Can be 0-23.
+      # If env variable has parsing error, use default. Notification sent to watchers.
+      #export NOTIFY_DUE_AT_HOUR_OF_DAY=8
+      #-----------------------------------------------------------------
+      # ==== EMAIL NOTIFICATION TIMEOUT, ms =====
+      # Defaut: 30000 ms = 30s
+      #export EMAIL_NOTIFICATION_TIMEOUT=30000
+      #-----------------------------------------------------------------
+      # CORS: Set Access-Control-Allow-Origin header. Example: *
+      #export CORS=*
+      # To enable the Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross-origin use of the API.
+      #export CORS_ALLOW_HEADERS=Authorization,Content-Type
+      # To enable the Set Access-Control-Expose-Headers header.  This is not needed for typical CORS situations. Example: *
+      #export CORS_EXPOSE_HEADERS=*
+      #---------------------------------------------
+      ## Optional: Integration with Matomo https://matomo.org that is installed to your server
+      ## The address of the server where Matomo is hosted:
+      ##export MATOMO_ADDRESS=https://example.com/matomo
+      #export MATOMO_ADDRESS=
+      ## The value of the site ID given in Matomo server for Wekan
+      # Example: export MATOMO_SITE_ID=123456789
+      #export MATOMO_SITE_ID=''
+      ## The option do not track which enables users to not be tracked by matomo"
+      #Example: export MATOMO_DO_NOT_TRACK=false
+      #export MATOMO_DO_NOT_TRACK=true
+      ## The option that allows matomo to retrieve the username:
+      # Example: export MATOMO_WITH_USERNAME=true
+      #export MATOMO_WITH_USERNAME='false'
+      # Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
+      # Setting this to false is not recommended, it also disables all other browser policy protections
+      # and allows all iframing etc. See wekan/server/policy.js
+      # Default value: true
+      export BROWSER_POLICY_ENABLED=true
+      # When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
+      # Example: export TRUSTED_URL=http://example.com
+      export TRUSTED_URL=''
+      # What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
+      # Example: export WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
+      export WEBHOOKS_ATTRIBUTES=''
+      #---------------------------------------------
+      # ==== OAUTH2 AZURE ====
+      # https://github.com/wekan/wekan/wiki/Azure
+      # 1) Register the application with Azure. Make sure you capture
+      #    the application ID as well as generate a secret key.
+      # 2) Configure the environment variables. This differs slightly
+      #     by installation type, but make sure you have the following:
+      #export OAUTH2_ENABLED=true
+      # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
+      #export OAUTH2_ADFS_ENABLED=false
+      # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
+      # OAuth2 login style: popup or redirect.
+      #export OAUTH2_LOGIN_STYLE=redirect
+      # Application GUID captured during app registration:
+      #export OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
+      # Secret key generated during app registration:
+      #export OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+      #export OAUTH2_SERVER_URL=https://login.microsoftonline.com/
+      #export OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize
+      #export OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo
+      #export OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token
+      # The claim name you want to map to the unique ID field:
+      #export OAUTH2_ID_MAP=email
+      # The claim name you want to map to the username field:
+      #export OAUTH2_USERNAME_MAP=email
+      # The claim name you want to map to the full name field:
+      #export OAUTH2_FULLNAME_MAP=name
+      # The claim name you want to map to the email field:
+      #export OAUTH2_EMAIL_MAP=email
+      #-----------------------------------------------------------------
+      # ==== OAUTH2 KEYCLOAK ====
+      # https://github.com/wekan/wekan/wiki/Keycloak  <== MAPPING INFO, REQUIRED
+      #export OAUTH2_ENABLED=true
+      # OAuth2 login style: popup or redirect.
+      #export OAUTH2_LOGIN_STYLE=redirect
+      #export OAUTH2_CLIENT_ID=<Keycloak create Client ID>
+      #export OAUTH2_SERVER_URL=<Keycloak server name>/auth
+      #export OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
+      #export OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
+      #export OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
+      #export OAUTH2_SECRET=<keycloak client secret>
+      #-----------------------------------------------------------------
+      # ==== OAUTH2 DOORKEEPER ====
+      # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
+      # https://github.com/wekan/wekan/issues/1874
+      # https://github.com/wekan/wekan/wiki/OAuth2
+      # Enable the OAuth2 connection
+      #export OAUTH2_ENABLED=true
+      # OAuth2 login style: popup or redirect.
+      #export OAUTH2_LOGIN_STYLE=redirect
+      # OAuth2 Client ID.
+      #export OAUTH2_CLIENT_ID=abcde12345
+      # OAuth2 Secret.
+      #export OAUTH2_SECRET=54321abcde
+      # OAuth2 Server URL.
+      #export OAUTH2_SERVER_URL=https://chat.example.com
+      # OAuth2 Authorization Endpoint.
+      #export OAUTH2_AUTH_ENDPOINT=/oauth/authorize
+      # OAuth2 Userinfo Endpoint.
+      #export OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
+      # OAuth2 Token Endpoint.
+      #export OAUTH2_TOKEN_ENDPOINT=/oauth/token
+      # OAUTH2 ID Token Whitelist Fields.
+      #export OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[]
+      # OAUTH2 Request Permissions.
+      #export OAUTH2_REQUEST_PERMISSIONS='openid profile email'
+      # OAuth2 ID Mapping
+      #export OAUTH2_ID_MAP=
+      # OAuth2 Username Mapping
+      #export OAUTH2_USERNAME_MAP=
+      # OAuth2 Fullname Mapping
+      #export OAUTH2_FULLNAME_MAP=
+      # OAuth2 Email Mapping
+      #export OAUTH2_EMAIL_MAP=
+      #---------------------------------------------
+      # LDAP_ENABLE : Enable or not the connection by the LDAP
+      # example :  export LDAP_ENABLE=true
+      #export LDAP_ENABLE=false
+      # LDAP_PORT : The port of the LDAP server
+      # example :  export LDAP_PORT=389
+      #export LDAP_PORT=389
+      # LDAP_HOST : The host server for the LDAP server
+      # example :  export LDAP_HOST=localhost
+      #export LDAP_HOST=
+      # LDAP_BASEDN : The base DN for the LDAP Tree
+      # example :  export LDAP_BASEDN=ou=user,dc=example,dc=org
+      #export LDAP_BASEDN=
+      # LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
+      # example :  export LDAP_LOGIN_FALLBACK=true
+      #export LDAP_LOGIN_FALLBACK=false
+      # LDAP_RECONNECT : Reconnect to the server if the connection is lost
+      # example :  export LDAP_RECONNECT=false
+      #export LDAP_RECONNECT=true
+      # LDAP_TIMEOUT : Overall timeout, in milliseconds
+      # example :  export LDAP_TIMEOUT=12345
+      #export LDAP_TIMEOUT=10000
+      # LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
+      # example :  export LDAP_IDLE_TIMEOUT=12345
+      #export LDAP_IDLE_TIMEOUT=10000
+      # LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
+      # example :  export LDAP_CONNECT_TIMEOUT=12345
+      #export LDAP_CONNECT_TIMEOUT=10000
+      # LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
+      # example :  export LDAP_AUTHENTIFICATION=true
+      #export LDAP_AUTHENTIFICATION=false
+      # LDAP_AUTHENTIFICATION_USERDN : The search user DN
+      # example :  export LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
+      #----------------------------------------------------------------------------
+      # The search user DN - You need quotes when you have spaces in parameters
+      # 2 examples:
+      #export LDAP_AUTHENTIFICATION_USERDN="CN=ldap admin,CN=users,DC=domainmatter,DC=lan"
+      #export LDAP_AUTHENTIFICATION_USERDN="CN=wekan_adm,OU=serviceaccounts,OU=admin,OU=prod,DC=mydomain,DC=com"
+      #---------------------------------------------------------------------------
+      # LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
+      # example : AUTHENTIFICATION_PASSWORD=admin
+      #export LDAP_AUTHENTIFICATION_PASSWORD=
+      # LDAP_LOG_ENABLED : Enable logs for the module
+      # example :  export LDAP_LOG_ENABLED=true
+      #export LDAP_LOG_ENABLED=false
+      # LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
+      # example :  export LDAP_BACKGROUND_SYNC=true
+      #export LDAP_BACKGROUND_SYNC=false
+      # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
+      # At which interval does the background task sync in milliseconds.
+      # Leave this unset, so it uses default, and does not crash.
+      # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
+      export LDAP_BACKGROUND_SYNC_INTERVAL=''
+      # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
+      # example :  export LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
+      #export LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
+      # LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
+      # example :  export LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
+      #export LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
+      # LDAP_ENCRYPTION : If using LDAPS
+      # example :  export LDAP_ENCRYPTION=ssl
+      #export LDAP_ENCRYPTION=false
+      # LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
+      # example :  export LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
+      #export LDAP_CA_CERT=
+      # LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
+      # example :  export LDAP_REJECT_UNAUTHORIZED=true
+      #export LDAP_REJECT_UNAUTHORIZED=false
+      # Option to login to the LDAP server with the user's own username and password, instead of an administrator key. Default: false (use administrator key).
+      #export LDAP_USER_AUTHENTICATION=true
+      # Which field is used to find the user for the user authentication. Default: uid.
+      #export LDAP_USER_AUTHENTICATION_FIELD=uid
+      # LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
+      # example :  export LDAP_USER_SEARCH_FILTER=
+      #export LDAP_USER_SEARCH_FILTER=
+      # LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
+      # example :  export LDAP_USER_SEARCH_SCOPE=one
+      #export LDAP_USER_SEARCH_SCOPE=
+      # LDAP_USER_SEARCH_FIELD : Which field is used to find the user
+      # example :  export LDAP_USER_SEARCH_FIELD=uid
+      #export LDAP_USER_SEARCH_FIELD=
+      # LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
+      # example :  export LDAP_SEARCH_PAGE_SIZE=12345
+      #export LDAP_SEARCH_PAGE_SIZE=0
+      # LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
+      # example :  export LDAP_SEARCH_SIZE_LIMIT=12345
+      #export LDAP_SEARCH_SIZE_LIMIT=0
+      # LDAP_GROUP_FILTER_ENABLE : Enable group filtering
+      # example :  export LDAP_GROUP_FILTER_ENABLE=true
+      #export LDAP_GROUP_FILTER_ENABLE=false
+      # LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
+      # example :  export LDAP_GROUP_FILTER_OBJECTCLASS=group
+      #export LDAP_GROUP_FILTER_OBJECTCLASS=
+      # LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
+      # example :
+      #export LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
+      # LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
+      # example :
+      #export LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
+      # LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
+      # example :
+      #export LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
+      # LDAP_GROUP_FILTER_GROUP_NAME :
+      # example :
+      #export LDAP_GROUP_FILTER_GROUP_NAME=
+      # LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
+      # example :  export LDAP_UNIQUE_IDENTIFIER_FIELD=guid
+      #export LDAP_UNIQUE_IDENTIFIER_FIELD=
+      # LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
+      # example :  export LDAP_UTF8_NAMES_SLUGIFY=false
+      #export LDAP_UTF8_NAMES_SLUGIFY=true
+      # LDAP_USERNAME_FIELD : Which field contains the ldap username
+      # example :  export LDAP_USERNAME_FIELD=username
+      #export LDAP_USERNAME_FIELD=
+      # LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
+      # example :  export LDAP_FULLNAME_FIELD=fullname
+      #export LDAP_FULLNAME_FIELD=
+      # LDAP_MERGE_EXISTING_USERS :
+      # example :  export LDAP_MERGE_EXISTING_USERS=true
+      #export LDAP_MERGE_EXISTING_USERS=false
+      # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
+      # example: LDAP_EMAIL_MATCH_ENABLE=true
+      #export LDAP_EMAIL_MATCH_ENABLE=false
+      # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
+      # example: LDAP_EMAIL_MATCH_REQUIRE=true
+      #export LDAP_EMAIL_MATCH_REQUIRE=false
+      # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
+      # example: LDAP_EMAIL_MATCH_VERIFIED=true
+      #export LDAP_EMAIL_MATCH_VERIFIED=false
+      # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
+      # example: LDAP_EMAIL_FIELD=mail
+      #export LDAP_EMAIL_FIELD=
+      # LDAP_SYNC_USER_DATA :
+      # example :  export LDAP_SYNC_USER_DATA=true
+      #export LDAP_SYNC_USER_DATA=false
+      # LDAP_SYNC_USER_DATA_FIELDMAP :
+      # example :  export LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
+      #export LDAP_SYNC_USER_DATA_FIELDMAP=
+      # LDAP_SYNC_GROUP_ROLES :
+      # example :
+      #export LDAP_SYNC_GROUP_ROLES=
+      # LDAP_DEFAULT_DOMAIN : 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
+      # example :
+      #export LDAP_DEFAULT_DOMAIN=
+      # Enable/Disable syncing of admin status based on ldap groups:
+      #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=HEADERUID
+      #export HEADER_LOGIN_FIRSTNAME=HEADERFIRSTNAME
+      #export HEADER_LOGIN_LASTNAME=HEADERLASTNAME
+      #export HEADER_LOGIN_EMAIL=HEADEREMAILADDRESS
+      #---------------------------------------------------------------------
+      # LOGOUT_WITH_TIMER : Enables or not the option logout with timer
+      # example : LOGOUT_WITH_TIMER=true
+      #export LOGOUT_WITH_TIMER=
+      # LOGOUT_IN : The number of days
+      # example : LOGOUT_IN=1
+      #export LOGOUT_IN=
+      #export LOGOUT_ON_HOURS=
+      # LOGOUT_ON_MINUTES : The number of minutes
+      # example : LOGOUT_ON_MINUTES=55
+      #export LOGOUT_ON_MINUTES=
+      #---------------------------------------------------------------------
+      # PASSWORD_LOGIN_ENABLED : Enable or not the password login form.
+      #export PASSWORD_LOGIN_ENABLED=true
 
-        node main.js & >> ~/repos/wekan.log
-        cd ~/repos
+      node main.js & >> ~/repos/wekan.log
+      cd ~/repos
 #done

+ 2 - 4
sandstorm-pkgdef.capnp

@@ -239,9 +239,6 @@ const myCommand :Spk.Manifest.Command = (
     (key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
     (key = "WITH_API", value = "true"),
     (key = "RICHER_CARD_COMMENT_EDITOR", value="false"),
-    (key = "SCROLLINERTIA", value="0"),
-    (key = "SCROLLAMOUNT", value="auto"),
-    (key = "SCROLLDELTAFACTOR", value="auto"),
     (key = "CARD_OPENED_WEBHOOK_ENABLED", value="false"),
     (key = "NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE", value=""),
     (key = "BIGEVENTS_PATTERN", value="NONE"),
@@ -252,7 +249,8 @@ const myCommand :Spk.Manifest.Command = (
     (key = "BROWSER_POLICY_ENABLED", value="true"),
     (key = "TRUSTED_URL", value=""),
     (key = "WEBHOOKS_ATTRIBUTES", value=""),
-    (key = "OAUTH2_ENABLED", value=""),
+    (key = "OAUTH2_ENABLED", value="false"),
+    (key = "OAUTH2_ADFS_ENABLED", value="false"),
     (key = "OAUTH2_CLIENT_ID", value="false"),
     (key = "OAUTH2_SECRET", value=""),
     (key = "OAUTH2_SERVER_URL", value=""),

+ 0 - 22
server/scroll.js

@@ -1,22 +0,0 @@
-Meteor.startup(() => {
-  // Mouse Scroll Intertia, issue #2949. Integer.
-  if (process.env.SCROLLINERTIA !== '0') {
-    Meteor.settings.public.SCROLLINERTIA = process.env.SCROLLINERTIA;
-  } else {
-    Meteor.settings.public.SCROLLINERTIA = 0;
-  }
-
-  // Mouse Scroll Amount, issue #2949. "auto" or Integer.
-  if (process.env.SCROLLAMOUNT !== 'auto') {
-    Meteor.settings.public.SCROLLAMOUNT = process.env.SCROLLAMOUNT;
-  } else {
-    Meteor.settings.public.SCROLLAMOUNT = 'auto';
-  }
-
-  // Mouse Scroll DeltaFactor, issue #2949. "auto" or Integer.
-  if (process.env.SCROLLDELTAFACTOR !== 'auto') {
-    Meteor.settings.public.SCROLLDELTAFACTOR = process.env.SCROLLDELTAFACTOR;
-  } else {
-    Meteor.settings.public.SCROLLDELTAFACTOR = 'auto';
-  }
-});

File diff suppressed because it is too large
+ 0 - 0
snap-src/bin/config


+ 62 - 54
snap-src/bin/wekan-help

@@ -13,12 +13,12 @@ echo -e "Debug OIDC OAuth2 etc."
 echo -e "To enable the Debug of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME debug='true'"
 echo -e "\t-Disable the Debug of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME debug='false'"
+echo -e "\t$ snap unset $SNAP_NAME debug"
 echo -e "\n"
 echo -e "To enable the MONGO_URL of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME mongo-url='...'"
 echo -e "\t-Disable the MONGO_URL of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME mongo-url=''"
+echo -e "\t$ snap unset $SNAP_NAME mongo-url"
 echo -e "\n"
 echo -e "Make sure you have connected all interfaces, check more by calling $ snap interfaces ${SNAP_NAME}"
 echo -e "\n"
@@ -43,78 +43,74 @@ echo -e "\n"
 echo -e "To enable the API of wekan:"
 echo -e "\t$ snap set $SNAP_NAME with-api='true'"
 echo -e "\t-Disable the API:"
-echo -e "\t$ snap set $SNAP_NAME with-api='false'"
+echo -e "\t$ snap unset $SNAP_NAME with-api"
 echo -e "\n"
 echo -e "Accounts lockout known users failures before, greater than 0. Default: 3"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-known-users-failures-before='3'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-known-users-failures-before"
 echo -e "\n"
 echo -e "Accounts lockout know users period, in seconds. Default: 60"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-known-users-period='60'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-known-users-period"
 echo -e "\n"
 echo -e "Accounts lockout unknown failure window, in seconds. Default: 15"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-known-users-failure-window='15'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-known-users-failure-window"
 echo -e "\n"
 echo -e "Accounts lockout unknown users failures before, greater than 0. Default: 3"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-unknown-users-failures-before='3'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-unknown-users-failures-before"
 echo -e "\n"
 echo -e "Accounts lockout unknown users lockout period, in seconds. Default: 60"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-unknown-users-lockout-period='60'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-unknown-users-lockout-period"
 echo -e "\n"
 echo -e "Accounts lockout unknown users failure window, in seconds. Default: 15"
 echo -e "\t$ snap set $SNAP_NAME accounts-lockout-unknown-users-failure-window='15'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME accounts-lockout-unknown-users-failure-window"
 echo -e "\n"
 echo -e "Rich text editor in card comments. Default: false https://github.com/wekan/wekan/pull/2560"
-echo -e "Default:"
-echo -e "\t$ snap set $SNAP_NAME richer-card-comment-editor='true'"
-echo -e "Disabled:"
-echo -e "\t$ snap set $SNAP_NAME richer-card-comment-editor='false'"
-echo -e "\n"
-echo -e "Mousewheel scroll inertia. Default: 0. https://github.com/wekan/wekan/issues/2949"
-echo -e "Enable:"
-echo -e "\t$ snap set $SNAP_NAME scrollinertia='950'"
-echo -e "Disable, default:"
-echo -e "\t$ snap set $SNAP_NAME scrollinertia='0'"
-echo -e "\n"
-echo -e "Mousewheel scroll amount. Default: 'auto'. Allowed: 'auto' or Integer number. https://github.com/wekan/wekan/issues/2949"
-echo -e "Enable:"
-echo -e "\t$ snap set $SNAP_NAME scrollamount='950'"
-echo -e "Disable, default:"
-echo -e "\t$ snap set $SNAP_NAME scrollamount='auto'"
-echo -e "\n"
-echo -e "Mousewheel scroll deltafactor. Default: 'auto'. Allowed: 'auto' or Integer number. https://github.com/wekan/wekan/issues/2949"
 echo -e "Enable:"
-echo -e "\t$ snap set $SNAP_NAME scrolldeltafactor='950'"
-echo -e "Disable, default:"
-echo -e "\t$ snap set $SNAP_NAME scrolldeltafactor='auto'"
+echo -e "\t$ snap set $SNAP_NAME richer-card-comment-editor='true'"
+echo -e "Disable:"
+echo -e "\t$ snap unset $SNAP_NAME richer-card-comment-editor"
 echo -e "\n"
 echo -e "Card opened, send webhook message. Default: false https://github.com/wekan/wekan/issues/2518"
 echo -e "Enable:"
 echo -e "\t$ snap set $SNAP_NAME card-opened-webhook-enabled='true'"
 echo -e "Disable, default:"
-echo -e "\t$ snap set $SNAP_NAME card-opened-webhook-enabled='false'"
+echo -e "\t$ snap unset $SNAP_NAME card-opened-webhook-enabled"
 echo -e "\n"
 echo -e "Max image pixel: Allow to shrink attached/pasted image https://github.com/wekan/wekan/pull/2544"
 echo -e "Example:"
 echo -e "\t$ snap set $SNAP_NAME max-image-pixel='1024'"
-echo -e "Disabled:"
-echo -e "\t$ snap set $SNAP_NAME max-image-pixel=''"
+echo -e "Disable:"
+echo -e "\t$ snap unset $SNAP_NAME max-image-pixel"
 echo -e "\n"
 echo -e "Image compress ratio: Allow to shrink attached/pasted image https://github.com/wekan/wekan/pull/2544"
 echo -e "Example:"
 echo -e "\t$ snap set $SNAP_NAME image-compress-ratio='80'"
-echo -e "Disabled:"
-echo -e "\t$ snap set $SNAP_NAME image-compress-ratio=''"
+echo -e "Disable:"
+echo -e "\t$ snap unset $SNAP_NAME image-compress-ratio"
 echo -e "\n"
 echo -e "Allow to set attachment upload into specified server location. Create that directory first. https://github.com/wekan/wekan/pull/2603"
 echo -e "Example:"
 echo -e "\t$ snap set $SNAP_NAME attachments-store-path='/var/snap/wekan/common/attachments'"
-echo -e "Disabled:"
-echo -e "\t$ snap set $SNAP_NAME attachments-store-path=''"
+echo -e "Disable:"
+echo -e "\t$ snap unset $SNAP_NAME attachments-store-path"
 echo -e "\n"
 echo -e "NOTIFICATION TRAY AFTER READ DAYS BEFORE REMOVE https://github.com/wekan/wekan/pull/2998"
 echo -e "Number of days after a notification is read before we remove it. Default: 2."
-echo -e "Default:"
-echo -e "\t$ snap set $SNAP_NAME notification-tray-after-read-days-before-remove='2'"
+echo -e "Example:"
+echo -e "\t$ snap set $SNAP_NAME notification-tray-after-read-days-before-remove='4'"
+echo -e "Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME notification-tray-after-read-days-before-remove"
 echo -e "\n"
 echo -e "BIGEVENTS DUE ETC NOTIFICATIONS https://github.com/wekan/wekan/pull/2541"
 echo -e "Big events pattern: Notify always due etc regardless of notification settings. Default: due, All: received|start|due|end, Disabled: NONE"
@@ -131,34 +127,34 @@ echo -e "Notify due days, number less than 15 or negative number accepted, you c
 echo -e "To enable different Notify for Due Days on 2 days before, and on the event day "
 echo -e "\t$ snap set $SNAP_NAME notify-due-days-before-and-after='2,0'"
 echo -e "\t-Disable Notifying for Due Days:"
-echo -e "\t$ snap set $SNAP_NAME notify-due-days-before-and-after=''"
+echo -e "\t$ snap unset $SNAP_NAME notify-due-days-before-and-after"
 echo -e "\n"
 echo -e "Notify due at hour of day. Default every morning at 8am. Can be 0-23."
 echo -e "If env variable has parsing error, use default. Notification sent to watchers."
 echo -e "To enable different Notify Due At Hour Of Day than default 8:"
 echo -e "\t$ snap set $SNAP_NAME notify-due-at-hour-of-day='10'"
 echo -e "\t-To set back default 8 of Notify Due at Hour of Day:"
-echo -e "\t$ snap set $SNAP_NAME notify-due-at-hour-of-day=''"
+echo -e "\t$ snap unset $SNAP_NAME notify-due-at-hour-of-day"
 echo -e "\n"
 echo -e "To enable the Email Notification Timeout of wekan in ms, default 30000 (=30s):"
 echo -e "\t$ snap set $SNAP_NAME email-notification-timeout='10000'"
-echo -e "\t-Disable the Email Notification Timeout of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME email-notification-timeout='30000'"
+echo -e "\t-Restore default:"
+echo -e "\t$ snap unset $SNAP_NAME email-notification-timeout"
 echo -e "\n"
 echo -e "To enable the CORS of wekan, to set Access-Control-Allow-Origin header:"
 echo -e "\t$ snap set $SNAP_NAME cors='*'"
 echo -e "\t-Disable the CORS:"
-echo -e "\t$ snap set $SNAP_NAME cors=''"
+echo -e "\t$ snap unset $SNAP_NAME cors"
 echo -e "\n"
 echo -e "To enable the Set Access-Control-Allow-Headers header. \"Authorization,Content-Type\" is required for cross-origin use of the API."
 echo -e "\t$ snap set $SNAP_NAME cors-allow-headers='Authorization,Content-Type'"
 echo -e "\t-Disable the Set Access-Control-Allow-Headers header. \"Authorization,Content-Type\" is required for cross-origin use of the API."
-echo -e "\t$ snap set $SNAP_NAME cors-allow-headers=''"
+echo -e "\t$ snap unset $SNAP_NAME cors-allow-headers"
 echo -e "\n"
 echo -e "To enable the Set Access-Control-Expose-Headers header.  This is not needed for typical CORS situations. Example: *"
 echo -e "\t$ snap set $SNAP_NAME cors-expose-headers='*'"
 echo -e "\t-Disable the Set Access-Control-Expose-Headers header.  This is not needed for typical CORS situations. Example: ''"
-echo -e "\t$ snap set $SNAP_NAME cors-expose-headers=''"
+echo -e "\t$ snap unset $SNAP_NAME cors-expose-headers"
 echo -e "\n"
 echo -e "Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside."
 echo -e "\t\t Setting this to false is not recommended, it also disables all other browser policy protections"
@@ -172,19 +168,31 @@ echo -e "When browser policy is enabled, HTML code at this URL can have iframe t
 echo -e "To enable the Trusted URL of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME trusted-url='https://example.com'"
 echo -e "\t-Disable the Trusted URL of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME trusted-url=''"
+echo -e "\t$ snap unset $SNAP_NAME trusted-url"
 echo -e "\n"
 echo -e "What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId ."
 echo -e "To enable the Webhooks Attributes of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME webhooks-attributes='cardId,listId,oldListId,boardId,comment,user,card,commentId'"
 echo -e "\t-Disable the Webhooks Attributes of Wekan to send all default ones:"
-echo -e "\t$ snap set $SNAP_NAME webhooks-attributes=''"
+echo -e "\t$ snap unset $SNAP_NAME webhooks-attributes"
+echo -e "\n"
+echo -e "OAuth2 Enabled."
+echo -e "To enable the OAuth2 of Wekan:"
+echo -e "\t$ snap set $SNAP_NAME oauth2-enabled='true'"
+echo -e "\t-Disable the OAuth2 of Wekan:"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-enabled"
+echo -e "\n"
+echo -e "OAuth2 ADFS Enabled. Also requires oauth2-enabled='true'"
+echo -e "To enable the OAuth2 ADFS of Wekan:"
+echo -e "\t$ snap set $SNAP_NAME oauth2-adfs-enabled='true'"
+echo -e "\t-Disable the OAuth2 ADFS of Wekan:"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-adfs-enabled"
 echo -e "\n"
 echo -e "OAuth2 Client ID."
 echo -e "To enable the OAuth2 Client ID of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-client-id='54321abcde'"
 echo -e "\t-Disable the OAuth2 Client ID of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-client-id=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-client-id"
 echo -e "\n"
 echo -e "OAuth2 login style: popup or redirect. Default: redirect"
 echo -e "To enable the OAuth2 login style popup of Wekan:"
@@ -196,67 +204,67 @@ echo -e "OAuth2 Secret."
 echo -e "To enable the OAuth2 Secret of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-secret='54321abcde'"
 echo -e "\t-Disable the OAuth2 Secret of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-secret=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-secret"
 echo -e "\n"
 echo -e "OAuth2 Server URL."
 echo -e "To enable the OAuth2 Server URL of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-server-url='https://chat.example.com'"
 echo -e "\t-Disable the OAuth2 Server URL of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-server-url=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-server-url"
 echo -e "\n"
 echo -e "OAuth2 Authorization Endpoint."
 echo -e "To enable the OAuth2 Authorization Endpoint of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-auth-endpoint='/oauth/authorize'"
 echo -e "\t-Disable the OAuth2 Authorization Endpoint of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-auth-endpoint=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-auth-endpoint"
 echo -e "\n"
 echo -e "OAuth2 Userinfo Endpoint."
 echo -e "To enable the OAuth2 Userinfo Endpoint of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-userinfo-endpoint='/oauth/authorize'"
 echo -e "\t-Disable the OAuth2 Userinfo Endpoint of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-userinfo-endpoint=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-userinfo-endpoint"
 echo -e "\n"
 echo -e "OAuth2 Token Endpoint."
 echo -e "To enable the OAuth2 Token Endpoint of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-token-endpoint='/oauth/token'"
 echo -e "\t-Disable the OAuth2 Token Endpoint of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-token-endpoint=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-token-endpoint"
 echo -e "\n"
 echo -e "OAuth2 ID Token Whitelist Fields."
 echo -e "To enable the OAuth2 ID Token Whitelist Fields of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-id-token-whitelist-fields=[]"
 echo -e "\t-Disable the OAuth2 ID Token Whitelist Fields of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-id-token-whitelist-fields=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-id-token-whitelist-fields"
 echo -e "\n"
 echo -e "OAuth2 Request Permissions."
 echo -e "To enable the OAuth2 Request Permissions of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-request-permissions=\"'openid profile email'\""
 echo -e "\t-Disable the OAuth2 Request Permissions of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-request-permissions=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-request-permissions"
 echo -e "\n"
 echo -e "OAuth2 ID Mapping."
 echo -e "To enable the OAuth2 ID Mapping of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-id-map='username.uid'"
 echo -e "\t-Disable the OAuth2 ID Mapping of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-id-map=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-id-map"
 echo -e "\n"
 echo -e "OAuth2 Username Mapping."
 echo -e "To enable the OAuth2 Username Mapping of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-username-map='username'"
 echo -e "\t-Disable the OAuth2 Username Mapping of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-username-map=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-username-map"
 echo -e "\n"
 echo -e "OAuth2 Fullname Mapping."
 echo -e "To enable the OAuth2 Fullname Mapping of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-fullname-map='fullname'"
 echo -e "\t-Disable the OAuth2 Fullname Mapping of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-fullname-map=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-fullname-map"
 echo -e "\n"
 echo -e "OAuth2 Email Mapping."
 echo -e "To enable the OAuth2 Email Mapping of Wekan:"
 echo -e "\t$ snap set $SNAP_NAME oauth2-email-map='email'"
 echo -e "\t-Disable the OAuth2 Email Mapping of Wekan:"
-echo -e "\t$ snap set $SNAP_NAME oauth2-email-map=''"
+echo -e "\t$ snap unset $SNAP_NAME oauth2-email-map"
 echo -e "\n"
 echo -e "Ldap Enable."
 echo -e "To enable the ldap of Wekan:"

+ 3 - 6
start-wekan.bat

@@ -22,12 +22,6 @@ REM # ==== RICH TEXT EDITOR IN CARD COMMENTS ====
 REM # https://github.com/wekan/wekan/pull/2560
 SET RICHER_CARD_COMMENT_EDITOR=false
 
-REM # ==== MOUSE SCROLL ====
-REM # https://github.com/wekan/wekan/issues/2949
-SET SCROLLINERTIA=0
-SET SCROLLAMOUNT=auto
-SET SCROLLDELTAFACTOR=auto
-
 REM # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
 SET CARD_OPENED_WEBHOOK_ENABLED=false
 
@@ -125,6 +119,9 @@ REM # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
 REM # example: OAUTH2_ENABLED=true
 REM SET OAUTH2_ENABLED=false
 
+REM # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
+REM SET OAUTH2_ADFS_ENABLED=false
+
 REM # OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
 REM # example: OAUTH2_CLIENT_ID=abcde12345
 REM SET OAUTH2_CLIENT_ID=

+ 2 - 6
start-wekan.sh

@@ -41,12 +41,6 @@
       # https://github.com/wekan/wekan/pull/2560
       export RICHER_CARD_COMMENT_EDITOR=false
       #---------------------------------------------------------------
-      # ==== MOUSE SCROLL ====
-      # https://github.com/wekan/wekan/issues/2949
-      export SCROLLINERTIA=0
-      export SCROLLAMOUNT=auto
-      export SCROLLDELTAFACTOR=auto
-      #---------------------------------------------------------------
       # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
       export CARD_OPENED_WEBHOOK_ENABLED=false
       #---------------------------------------------------------------
@@ -133,6 +127,8 @@
       # 2) Configure the environment variables. This differs slightly
       #     by installation type, but make sure you have the following:
       #export OAUTH2_ENABLED=true
+      # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
+      #export OAUTH2_ADFS_ENABLED=false
       # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
       # OAuth2 login style: popup or redirect.
       #export OAUTH2_LOGIN_STYLE=redirect

+ 2 - 6
torodb-postgresql/docker-compose.yml

@@ -230,12 +230,6 @@ services:
       # https://github.com/wekan/wekan/pull/2560
       - RICHER_CARD_COMMENT_EDITOR=false
       #---------------------------------------------------------------
-      # ==== MOUSE SCROLL ====
-      # https://github.com/wekan/wekan/issues/2949
-      - SCROLLINERTIA=0
-      - SCROLLAMOUNT=auto
-      - SCROLLDELTAFACTOR=auto
-      #---------------------------------------------------------------
       # ==== CARD OPENED, SEND WEBHOOK MESSAGE ====
       # https://github.com/wekan/wekan/issues/2518
       - CARD_OPENED_WEBHOOK_ENABLED=false
@@ -321,6 +315,8 @@ services:
       # Enable the OAuth2 connection
       # example: OAUTH2_ENABLED=true
       #- OAUTH2_ENABLED=false
+      # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting.
+      #- OAUTH2_ADFS_ENABLED=false
       # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
       # OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
       # example: OAUTH2_CLIENT_ID=abcde12345

Some files were not shown because too many files changed in this diff