Merge branch 'wekan:master' into master

This commit is contained in:
TheExo 2022-04-07 12:02:46 +02:00 committed by GitHub
commit 12c9317e15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 95 additions and 58 deletions

View file

@ -149,3 +149,4 @@ pascoual:pdfkit
wekan-accounts-lockout wekan-accounts-lockout
lmieulet:meteor-coverage lmieulet:meteor-coverage
meteortesting:mocha meteortesting:mocha
browser-policy-content

View file

@ -19,6 +19,7 @@ blaze@2.5.0
blaze-tools@1.1.2 blaze-tools@1.1.2
boilerplate-generator@1.7.1 boilerplate-generator@1.7.1
browser-policy-common@1.0.11 browser-policy-common@1.0.11
browser-policy-content@1.1.1
browser-policy-framing@1.1.0 browser-policy-framing@1.1.0
caching-compiler@1.2.2 caching-compiler@1.2.2
caching-html-compiler@1.2.0 caching-html-compiler@1.2.0

View file

@ -1,6 +1,15 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac) [Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
# Upcoming WeKan ® release # v6.17 2022-04-06 WeKan ® release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/f613a5875fbc600292f6821776d957c7221bcd0a).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.16 2022-04-06 WeKan ® release
This release fixes the following bugs: This release fixes the following bugs:
@ -8,6 +17,16 @@ This release fixes the following bugs:
Thanks to helioguardabaxo. Thanks to helioguardabaxo.
- [Remove incomplete translated changelogs](https://github.com/wekan/wekan/pull/4455). - [Remove incomplete translated changelogs](https://github.com/wekan/wekan/pull/4455).
Thanks to ocdtrekkie. Thanks to ocdtrekkie.
- [Fix Can't add attachments because of Content-Security-Policy](https://github.com/wekan/wekan/commit/0d9c37b0067d46669b7258bfff5dfc16d590e1d9).
Thanks to Ben0it-T and xet7.
- [Try to fix Duplicate Board](https://github.com/wekan/wekan/commit/e7a11c57338a15a8fc1e1b74a2446ffd7d4743a7).
Thanks to xet7.
- [Try to fix Trello import Attachment and links not defined. In Progress, does not work yet](https://github.com/wekan/wekan/commit/5eca3de00fea31721fa2e10b7d3a6f13ca87f39c).
Thanks to akhudushin, hatl, 2447254731 and xet7.
- [Comment out Trello attachment import until it's implemented with API key](https://github.com/wekan/wekan/commit/49a996624f3842c243bb72120b95c27d914e02a9).
Thanks to xet7.
- [Try to fix Snap WRITABLE_FILES](https://github.com/wekan/wekan/commit/4ca7b0dad733099cd6ad15acc69ec436539f7460).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations. Thanks to above GitHub users for their contributions and translators for their translations.

View file

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

View file

@ -239,7 +239,7 @@ BlazeComponent.extendComponent({
}, },
(err, res) => { (err, res) => {
if (err) { if (err) {
this.setError(err.error); self.setError(err.error);
} else { } else {
Session.set('fromBoard', null); Session.set('fromBoard', null);
subManager.subscribe('board', res, false); subManager.subscribe('board', res, false);

View file

@ -1,5 +1,5 @@
apiVersion: v2 apiVersion: v2
appVersion: "6.15" appVersion: "6.17"
dependencies: dependencies:
- condition: mongodb.enabled - condition: mongodb.enabled
name: mongodb name: mongodb

View file

@ -14,7 +14,7 @@ serviceAccounts:
## ##
image: image:
repository: quay.io/wekan/wekan repository: quay.io/wekan/wekan
tag: v6.15 tag: v6.17
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
## Configuration for wekan component ## Configuration for wekan component

View file

@ -282,7 +282,7 @@
"computer": "Computer", "computer": "Computer",
"confirm-subtask-delete-popup": "Wollen Sie die Teilaufgabe wirklich löschen?", "confirm-subtask-delete-popup": "Wollen Sie die Teilaufgabe wirklich löschen?",
"confirm-checklist-delete-popup": "Wollen Sie diese Checkliste wirklich löschen?", "confirm-checklist-delete-popup": "Wollen Sie diese Checkliste wirklich löschen?",
"subtaskDeletePopup-title": "Delete Subtask?", "subtaskDeletePopup-title": "Teilaufgabe löschen?",
"checklistDeletePopup-title": "Checkliste löschen?", "checklistDeletePopup-title": "Checkliste löschen?",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage", "copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copy-text-to-clipboard": "Text in die Zwischenablage kopieren", "copy-text-to-clipboard": "Text in die Zwischenablage kopieren",
@ -706,7 +706,7 @@
"deposit-subtasks-board": "Teilaufgaben in diesem Board ablegen:", "deposit-subtasks-board": "Teilaufgaben in diesem Board ablegen:",
"deposit-subtasks-list": "Zielliste für hier abgelegte Teilaufgaben:", "deposit-subtasks-list": "Zielliste für hier abgelegte Teilaufgaben:",
"show-parent-in-minicard": "Übergeordnetes Element auf Minikarte anzeigen:", "show-parent-in-minicard": "Übergeordnetes Element auf Minikarte anzeigen:",
"description-on-minicard": "Description on minicard", "description-on-minicard": "Beschreibung auf Minikarte",
"prefix-with-full-path": "Vollständiger Pfad über Titel", "prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel", "prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel", "subtext-with-full-path": "Vollständiger Pfad unter Titel",
@ -1150,5 +1150,5 @@
"copyChecklist": "Checkliste kopieren", "copyChecklist": "Checkliste kopieren",
"copyChecklistPopup-title": "Checkliste kopieren", "copyChecklistPopup-title": "Checkliste kopieren",
"card-show-lists": "Listen anzeigen", "card-show-lists": "Listen anzeigen",
"subtaskActionsPopup-title": "Subtask Actions" "subtaskActionsPopup-title": "Teilaufgabenaktionen"
} }

View file

@ -706,7 +706,7 @@
"deposit-subtasks-board": "Déposer des sous-tâches dans ce tableau :", "deposit-subtasks-board": "Déposer des sous-tâches dans ce tableau :",
"deposit-subtasks-list": "Liste de destination pour les sous-tâches déposées ici :", "deposit-subtasks-list": "Liste de destination pour les sous-tâches déposées ici :",
"show-parent-in-minicard": "Voir la carte parente dans la mini-carte :", "show-parent-in-minicard": "Voir la carte parente dans la mini-carte :",
"description-on-minicard": "Description on minicard", "description-on-minicard": "Description sur la mini-carte",
"prefix-with-full-path": "Préfixer avec le chemin complet", "prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent", "prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet", "subtext-with-full-path": "Sous-titre avec le chemin complet",
@ -878,7 +878,7 @@
"delete-team-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette équipe ? Cela est irréversible.", "delete-team-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette équipe ? Cela est irréversible.",
"delete-org-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette organisation ? Cela est irréversible.", "delete-org-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette organisation ? Cela est irréversible.",
"accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte", "accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte",
"hide-minicard-label-text": "Cacher l'étiquette de la minicarte", "hide-minicard-label-text": "Cacher l'étiquette de la mini-carte",
"show-desktop-drag-handles": "Voir les poignées de déplacement du bureau", "show-desktop-drag-handles": "Voir les poignées de déplacement du bureau",
"assignee": "Personne assignée", "assignee": "Personne assignée",
"cardAssigneesPopup-title": "Personne assignée", "cardAssigneesPopup-title": "Personne assignée",

View file

@ -4,6 +4,8 @@ import {
TYPE_LINKED_BOARD, TYPE_LINKED_BOARD,
TYPE_LINKED_CARD, TYPE_LINKED_CARD,
} from '../config/const'; } from '../config/const';
import Attachments from "./attachments";
Cards = new Mongo.Collection('cards'); Cards = new Mongo.Collection('cards');
@ -585,8 +587,8 @@ Cards.helpers({
// Copy attachments // Copy attachments
oldCard.attachments().forEach(att => { oldCard.attachments().forEach(att => {
att.cardId = _id; att.cardId = _id;
Attachments.insert(att);
delete att._id; delete att._id;
return Attachments.insert(att);
}); });
// copy checklists // copy checklists

View file

@ -1,3 +1,5 @@
import Attachments from "./attachments";
const DateString = Match.Where(function(dateAsString) { const DateString = Match.Where(function(dateAsString) {
check(dateAsString, String); check(dateAsString, String);
return moment(dateAsString, moment.ISO_8601).isValid(); return moment(dateAsString, moment.ISO_8601).isValid();
@ -445,13 +447,16 @@ export class TrelloCreator {
}); });
} }
}; };
if (att.url) { // TODO: Add import attachment with Trello API key
Attachment.load(att.url, opts, cb, true); // like Python code at wekan/trello/ of https://github.com/wekan/wekan
} else if (att.file) { //if (att.url) {
Attachment.write(att.file, opts, cb, true); // Attachment.load(att.url, opts, cb, true);
} //} else if (att.file) {
// Attachment.write(att.file, opts, cb, true);
//}
}); });
if (links) {
if (links.length) { if (links.length) {
let desc = cardToCreate.description.trim(); let desc = cardToCreate.description.trim();
if (desc) { if (desc) {
@ -468,6 +473,7 @@ export class TrelloCreator {
}); });
} }
} }
}
result.push(cardId); result.push(cardId);
}); });
return result; return result;

8
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "wekan", "name": "wekan",
"version": "v6.15.0", "version": "v6.17.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -194,9 +194,9 @@
"integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==" "integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw=="
}, },
"@babel/runtime": { "@babel/runtime": {
"version": "7.16.3", "version": "7.17.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
"integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
"requires": { "requires": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "wekan", "name": "wekan",
"version": "v6.15.0", "version": "v6.17.0",
"description": "Open-Source kanban", "description": "Open-Source kanban",
"private": true, "private": true,
"repository": { "repository": {
@ -21,7 +21,7 @@
}, },
"dependencies": { "dependencies": {
"@babel/core": "^7.15.0", "@babel/core": "^7.15.0",
"@babel/runtime": "^7.15.3", "@babel/runtime": "^7.17.9",
"@wekanteam/markdown-it-mermaid": "^0.5.3", "@wekanteam/markdown-it-mermaid": "^0.5.3",
"ajv": "^8.10.0", "ajv": "^8.10.0",
"babel-runtime": "^6.26.0", "babel-runtime": "^6.26.0",

View file

@ -7,7 +7,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v6.15</title> <title>Wekan REST API v6.17</title>
<style> <style>
</style> </style>
@ -1558,7 +1558,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1"> <ul class="toc-list-h1">
<li> <li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.15">Wekan REST API v6.15</a> <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.17">Wekan REST API v6.17</a>
</li> </li>
@ -2156,7 +2156,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper"> <div class="page-wrapper">
<div class="dark-box"></div> <div class="dark-box"></div>
<div class="content"> <div class="content">
<h1 id="wekan-rest-api">Wekan REST API v6.15</h1> <h1 id="wekan-rest-api">Wekan REST API v6.17</h1>
<blockquote> <blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p> <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote> </blockquote>

View file

@ -1,7 +1,7 @@
swagger: '2.0' swagger: '2.0'
info: info:
title: Wekan REST API title: Wekan REST API
version: v6.15 version: v6.17
description: | description: |
The REST API allows you to control and extend Wekan with ease. The REST API allows you to control and extend Wekan with ease.

View file

@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"), appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user. # The name of the app as it is displayed to the user.
appVersion = 615, appVersion = 617,
# Increment this for every release. # Increment this for every release.
appMarketingVersion = (defaultText = "6.15.0~2022-04-05"), appMarketingVersion = (defaultText = "6.17.0~2022-04-06"),
# Human-readable presentation of the app version. # Human-readable presentation of the app version.
minUpgradableAppVersion = 0, minUpgradableAppVersion = 0,

View file

@ -1,6 +1,13 @@
import { BrowserPolicy } from 'meteor/browser-policy-common'; import { BrowserPolicy } from 'meteor/browser-policy-common';
Meteor.startup(() => { Meteor.startup(() => {
// Default allowed
BrowserPolicy.content.allowInlineScripts();
BrowserPolicy.content.allowEval();
BrowserPolicy.content.allowInlineStyles();
BrowserPolicy.content.allowSameOriginForAll();
if (process.env.BROWSER_POLICY_ENABLED === 'true') { if (process.env.BROWSER_POLICY_ENABLED === 'true') {
// Trusted URL that can embed Wekan in iFrame. // Trusted URL that can embed Wekan in iFrame.
const trusted = process.env.TRUSTED_URL; const trusted = process.env.TRUSTED_URL;

View file

@ -3,11 +3,11 @@
# All supported keys are defined here together with descriptions and default values # All supported keys are defined here together with descriptions and default values
# list of supported keys # list of supported keys
keys="DEBUG WRITABLE_PATH MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE 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_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH 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_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD 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 PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS" keys="DEBUG MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE 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_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH 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_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD 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 PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS"
DESCRIPTION_WRITABLE_PATH="Writable path. Default: $SNAP_COMMON/wekan-uploads" #DESCRIPTION_WRITABLE_PATH="Writable path. Default: $SNAP_COMMON/files"
DEFAULT_WRITABLE_PATH="$SNAP_COMMON/wekan-uploads" #DEFAULT_WRITABLE_PATH="$SNAP_COMMON/files"
KEY_WRITABLE_PATH="writable-path" #KEY_WRITABLE_PATH="writable-path"
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132 # https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132

View file

@ -24,12 +24,6 @@ if test -f "$SNAP_COMMON/mongodb.log"; then
rm -f "$SNAP_COMMON/mongodb.log" rm -f "$SNAP_COMMON/mongodb.log"
fi fi
# If uploads directory does not exist, create it.
# Wekan will store attachments there.
if [ ! -d "${WRITABLE_PATH}" ]; then
mkdir "${WRITABLE_PATH}"
fi
# Alternative: When starting MongoDB, and using logfile, truncate log to last 1000 lines of text. # Alternative: When starting MongoDB, and using logfile, truncate log to last 1000 lines of text.
# 1) If file exists: # 1) If file exists:
#if test -f "$SNAP_COMMON/mongodb.log"; then #if test -f "$SNAP_COMMON/mongodb.log"; then

View file

@ -16,6 +16,13 @@ else
export MONGO_URL="mongodb://$MONGODB_BIND_IP:$MONGODB_PORT/wekan" export MONGO_URL="mongodb://$MONGODB_BIND_IP:$MONGODB_PORT/wekan"
fi fi
# If uploads directory does not exist, create it.
# Wekan will store attachments there.
export WRITABLE_PATH=$SNAP_COMMON/files
if [ ! -d $WRITABLE_PATH ]; then
mkdir $WRITABLE_PATH
fi
echo -e "MONGO_URL=$MONGO_URL" echo -e "MONGO_URL=$MONGO_URL"
APPLICATION_DIRECTORY=$SNAP APPLICATION_DIRECTORY=$SNAP
APPLICATION_START=main.js APPLICATION_START=main.js

View file

@ -15,12 +15,12 @@ echo -e "\t$ snap set $SNAP_NAME debug='true'"
echo -e "\t-Disable the Debug of Wekan:" echo -e "\t-Disable the Debug of Wekan:"
echo -e "\t$ snap unset $SNAP_NAME debug" echo -e "\t$ snap unset $SNAP_NAME debug"
echo -e "\n" echo -e "\n"
echo -e "Writable path. Snap can not write outside of /var/snap/wekan/common sandbox directory." #echo -e "Writable path. Snap can not write outside of /var/snap/wekan/common sandbox directory."
echo -e "Default:" #echo -e "Default:"
echo -e "\t$ snap set $SNAP_NAME writable-path='\$SNAP_COMMON\uploads'" #echo -e "\t$ snap set $SNAP_NAME writable-path='\$SNAP_COMMON\files'"
echo -e "\t-To set different path, usually not needed:" #echo -e "\t-To set different path, usually not needed:"
echo -e "\t$ snap set $SNAP_NAME writable-path='\$SNAP_COMMON\uploads2'" #echo -e "\t$ snap set $SNAP_NAME writable-path='\$SNAP_COMMON\files2'"
echo -e "\n" #echo -e "\n"
echo -e "Mongo log destimation: devnull/snapcommon/syslog. Default: 'devnull'" echo -e "Mongo log destimation: devnull/snapcommon/syslog. Default: 'devnull'"
echo -e "To set different mongo log destination of Wekan:" echo -e "To set different mongo log destination of Wekan:"
echo -e "\t$ snap set $SNAP_NAME mongo-log-destination='snapcommon'" echo -e "\t$ snap set $SNAP_NAME mongo-log-destination='snapcommon'"

View file

@ -1,5 +1,5 @@
name: wekan name: wekan
version: '6.15' version: '6.17'
summary: Open Source kanban summary: Open Source kanban
description: | description: |
WeKan ® is an Open Source and collaborative kanban board application. WeKan ® is an Open Source and collaborative kanban board application.