mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
merge with master
This commit is contained in:
commit
b36920e657
32 changed files with 764 additions and 316 deletions
|
@ -10,7 +10,7 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||
|
||||
ENV \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.19.3 \
|
||||
NODE_VERSION=v14.20.0 \
|
||||
METEOR_RELEASE=1.10.2 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
|
|
|
@ -81,7 +81,7 @@ parts:
|
|||
wekan:
|
||||
source: .
|
||||
plugin: nodejs
|
||||
node-engine: 14.19.3
|
||||
node-engine: 14.20.0
|
||||
node-packages:
|
||||
- node-gyp
|
||||
- node-pre-gyp
|
||||
|
|
|
@ -80,7 +80,7 @@ konecty:mongo-counter
|
|||
percolate:synced-cron
|
||||
cfs:filesystem
|
||||
ostrio:cookies
|
||||
ostrio:files@2.0.1
|
||||
ostrio:files@2.0.1!
|
||||
rajit:bootstrap3-datepicker-fi
|
||||
rajit:bootstrap3-datepicker-ar
|
||||
rajit:bootstrap3-datepicker-bg
|
||||
|
|
|
@ -125,7 +125,7 @@ ongoworks:speakingurl@1.1.0
|
|||
ordered-dict@1.1.0
|
||||
ostrio:cookies@2.7.2
|
||||
ostrio:cstorage@4.0.1
|
||||
ostrio:files@2.2.1
|
||||
ostrio:files@2.0.1
|
||||
ostrio:i18n@3.2.0
|
||||
pascoual:pdfkit@1.0.7
|
||||
peerlibrary:assert@0.3.0
|
||||
|
|
|
@ -3,7 +3,7 @@ sudo: required
|
|||
|
||||
env:
|
||||
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
|
||||
TRAVIS_NODE_VERSION: 14.19.3
|
||||
TRAVIS_NODE_VERSION: 14.20.0
|
||||
TRAVIS_NPM_VERSION: latest
|
||||
|
||||
before_install:
|
||||
|
|
39
CHANGELOG.md
39
CHANGELOG.md
|
@ -1,7 +1,42 @@
|
|||
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
|
||||
|
||||
Required versions of Node.js, MongoDB etc are listed at https://wekan.github.io
|
||||
Download section.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# Upcoming WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Added LaTex support to all input fields with markdown-it-mathjax3](https://github.com/wekan/wekan/commit/e81900178e62d36672952a8f0707c5297dcd7767).
|
||||
Examples: https://github.com/wekan/wekan/wiki/LaTeX .
|
||||
Thanks to DoktorScience.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v6.30 2022-07-11 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Automatic login with OIDC](https://github.com/wekan/wekan/pull/4588).
|
||||
Thanks to Viehlieb.
|
||||
- [OIDC/OAuth2 autologin settings for Docker/Snap/Source/Bundle platforms](https://github.com/wekan/wekan/commit/284f4401369aadcec72e67fa935dfc3a9fead721).
|
||||
Thanks to xet7.
|
||||
|
||||
and tries to fix the following bugs:
|
||||
|
||||
- [Try to fix Snap](https://github.com/wekan/wekan/commit/17f8f8f14ff205d0cbb316c63a2da36f61ba4a1d).
|
||||
Thanks to xet7.
|
||||
- [On CentOS 7 Docker there is seccomp issue with glibc 6, so setting it to unconfined to get WeKan working](https://github.com/wekan/wekan/commit/054d420dc97cadee6ed7896c608d95a6fe09dc9d).
|
||||
Thanks to m-brangeon.
|
||||
- [Fix uploading attachments](https://github.com/wekan/wekan/commit/69d454dd035a989266175eb4268ffc3d7891eb95).
|
||||
Thanks to BabyFnord and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v6.29 2022-07-11 WeKan ® release
|
||||
|
||||
This release adds the following features:
|
||||
|
||||
- [Resizeable size of list width and height. Size is not saved yet. In Progress](https://github.com/wekan/wekan/commit/01d0dd3b1dd0a3c9764e7c9d31eab739db2d3ad8).
|
||||
|
@ -11,11 +46,13 @@ This release adds the following features:
|
|||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated to Node.js v14.20.0](https://github.com/wekan/wekan/commit/239dd1a3411a3d4f51b109e1a0505a5a23bc72ee).
|
||||
Thanks to Node.js developers.
|
||||
- [Docker base image to Ubuntu 22.04](https://github.com/wekan/wekan/commit/6b4ffa69c64f0186a8b1b3ac175b633ac7c24263).
|
||||
Thanks to Ubuntu developers.
|
||||
- Updated ostrio:files.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/0d67a86f2c9c1c9696d8507c60e53d47a226a6ad),
|
||||
[Part 1](https://github.com/wekan/wekan/commit/c3bfcb78e9047a84d43041bebcec56718eaa140b).
|
||||
[Part 2](https://github.com/wekan/wekan/commit/c3bfcb78e9047a84d43041bebcec56718eaa140b).
|
||||
Thanks to developers of dependencies.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/ae09f0f0083a96c2211fdc02e60b4ff6a2f413ca).
|
||||
Thanks to developers of dependencies.
|
||||
|
|
|
@ -16,7 +16,7 @@ ARG DEBIAN_FRONTEND=noninteractive
|
|||
|
||||
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.19.3 \
|
||||
NODE_VERSION=v14.20.0 \
|
||||
METEOR_RELEASE=1.10.2 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
|
@ -50,6 +50,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
|
|||
TRUSTED_URL="" \
|
||||
WEBHOOKS_ATTRIBUTES="" \
|
||||
OAUTH2_ENABLED=false \
|
||||
OIDC_REDIRECTION_ENABLED=false \
|
||||
OAUTH2_CA_CERT="" \
|
||||
OAUTH2_ADFS_ENABLED=false \
|
||||
OAUTH2_LOGIN_STYLE=redirect \
|
||||
|
@ -147,6 +148,10 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
|
|||
NODE_OPTIONS="--max_old_space_size=4096" \
|
||||
WRITABLE_PATH=/data
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------------------------------
|
||||
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
# Add more Node heap:
|
||||
|
|
|
@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
|
|||
ENV QEMU_VERSION=v4.2.0-6 \
|
||||
QEMU_ARCHITECTURE=aarch64 \
|
||||
NODE_ARCHITECTURE=linux-arm64 \
|
||||
NODE_VERSION=v14.19.3 \
|
||||
NODE_VERSION=v14.20.0 \
|
||||
WEKAN_VERSION=latest \
|
||||
WEKAN_ARCHITECTURE=arm64 \
|
||||
NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
@ -49,7 +49,7 @@ LABEL maintainer="wekan"
|
|||
# Set the environment variables (defaults where required)
|
||||
ENV QEMU_ARCHITECTURE=aarch64 \
|
||||
NODE_ARCHITECTURE=linux-arm64 \
|
||||
NODE_VERSION=v14.19.3 \
|
||||
NODE_VERSION=v14.20.0 \
|
||||
NODE_ENV=production \
|
||||
NPM_VERSION=latest \
|
||||
WITH_API=true \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v6.28.0"
|
||||
appVersion: "v6.30.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
|
|
@ -21,7 +21,7 @@ const validator = {
|
|||
|
||||
// let isSettingDatabaseFctCallDone = false;
|
||||
|
||||
Template.userFormsLayout.onCreated(function() {
|
||||
Template.userFormsLayout.onCreated(function () {
|
||||
const templateInstance = this;
|
||||
templateInstance.currentSetting = new ReactiveVar();
|
||||
templateInstance.isLoading = new ReactiveVar(false);
|
||||
|
@ -37,7 +37,7 @@ Template.userFormsLayout.onCreated(function() {
|
|||
}
|
||||
|
||||
// isSettingDatabaseFctCallDone = true;
|
||||
if(currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
|
||||
if (currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
|
||||
document.getElementById("isSettingDatabaseCallDone").style.display = 'none';
|
||||
else
|
||||
document.getElementById("isSettingDatabaseCallDone").style.display = 'block';
|
||||
|
@ -50,36 +50,17 @@ Template.userFormsLayout.onCreated(function() {
|
|||
}
|
||||
});
|
||||
|
||||
if(!Meteor.user()?.profile)
|
||||
{
|
||||
|
||||
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
|
||||
serviceName = 'oidc';
|
||||
if (result)
|
||||
{
|
||||
methodName = "loginWithOidc";
|
||||
var loginWithService = Meteor[methodName];
|
||||
AccountsTemplates.options.socialLoginStyle = 'redirect';
|
||||
options = {
|
||||
loginStyle: AccountsTemplates.options.socialLoginStyle,
|
||||
};
|
||||
loginWithService(options, function(err) {
|
||||
AccountsTemplates.setDisabled(false);
|
||||
if (err && err instanceof Accounts.LoginCancelledError)
|
||||
{
|
||||
}
|
||||
else if (err && err instanceof ServiceConfiguration.ConfigError)
|
||||
{
|
||||
if (Accounts._loginButtonsSession) return Accounts._loginButtonsSession.configureService('oidc');
|
||||
}
|
||||
else
|
||||
{
|
||||
AccountsTemplates.submitCallback(err, state);
|
||||
}
|
||||
});
|
||||
}
|
||||
else console.log("oidc redirect not set");
|
||||
});
|
||||
if (!Meteor.user()?.profile) {
|
||||
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
|
||||
if (result) {
|
||||
AccountsTemplates.options.socialLoginStyle = 'redirect';
|
||||
options = {
|
||||
loginStyle: AccountsTemplates.options.socialLoginStyle,
|
||||
};
|
||||
Meteor.loginWithOidc(options);
|
||||
}
|
||||
else console.log("oidc redirect not set");
|
||||
});
|
||||
}
|
||||
Meteor.call('isDisableRegistration', (_, result) => {
|
||||
if (result) {
|
||||
|
@ -112,22 +93,22 @@ Template.userFormsLayout.helpers({
|
|||
// return isSettingDatabaseFctCallDone;
|
||||
// },
|
||||
|
||||
isLegalNoticeLinkExist(){
|
||||
isLegalNoticeLinkExist() {
|
||||
const currSet = Template.instance().currentSetting.get();
|
||||
if(currSet && currSet !== undefined && currSet != null){
|
||||
if (currSet && currSet !== undefined && currSet != null) {
|
||||
return currSet.legalNotice !== undefined && currSet.legalNotice.trim() != "";
|
||||
}
|
||||
else
|
||||
return false;
|
||||
},
|
||||
|
||||
getLegalNoticeWithWritTraduction(){
|
||||
getLegalNoticeWithWritTraduction() {
|
||||
let spanLegalNoticeElt = $("#legalNoticeSpan");
|
||||
if(spanLegalNoticeElt != null && spanLegalNoticeElt != undefined){
|
||||
if (spanLegalNoticeElt != null && spanLegalNoticeElt != undefined) {
|
||||
spanLegalNoticeElt.html(TAPi18n.__('acceptance_of_our_legalNotice', {}));
|
||||
}
|
||||
let atLinkLegalNoticeElt = $("#legalNoticeAtLink");
|
||||
if(atLinkLegalNoticeElt != null && atLinkLegalNoticeElt != undefined){
|
||||
if (atLinkLegalNoticeElt != null && atLinkLegalNoticeElt != undefined) {
|
||||
atLinkLegalNoticeElt.html(TAPi18n.__('legalNotice', {}));
|
||||
}
|
||||
return true;
|
||||
|
@ -178,41 +159,41 @@ Template.userFormsLayout.events({
|
|||
}
|
||||
isCheckDone = false;
|
||||
},
|
||||
'click #at-signUp'(event, templateInstance){
|
||||
'click #at-signUp'(event, templateInstance) {
|
||||
isCheckDone = false;
|
||||
},
|
||||
'DOMSubtreeModified #at-oidc'(event){
|
||||
if(alreadyCheck <= 2){
|
||||
'DOMSubtreeModified #at-oidc'(event) {
|
||||
if (alreadyCheck <= 2) {
|
||||
let currSetting = Settings.findOne();
|
||||
let oidcBtnElt = $("#at-oidc");
|
||||
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
|
||||
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
|
||||
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
|
||||
if(alreadyCheck == 1){
|
||||
if (alreadyCheck == 1) {
|
||||
alreadyCheck++;
|
||||
oidcBtnElt.html("");
|
||||
}
|
||||
else{
|
||||
else {
|
||||
alreadyCheck++;
|
||||
oidcBtnElt.html(htmlvalue);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
else {
|
||||
alreadyCheck = 1;
|
||||
}
|
||||
},
|
||||
'DOMSubtreeModified .at-form'(event){
|
||||
if(alreadyCheck <= 2 && !isCheckDone){
|
||||
if(document.getElementById("at-oidc") != null){
|
||||
'DOMSubtreeModified .at-form'(event) {
|
||||
if (alreadyCheck <= 2 && !isCheckDone) {
|
||||
if (document.getElementById("at-oidc") != null) {
|
||||
let currSetting = Settings.findOne();
|
||||
let oidcBtnElt = $("#at-oidc");
|
||||
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
|
||||
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
|
||||
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
|
||||
if(alreadyCheck == 1){
|
||||
if (alreadyCheck == 1) {
|
||||
alreadyCheck++;
|
||||
oidcBtnElt.html("");
|
||||
}
|
||||
else{
|
||||
else {
|
||||
alreadyCheck++;
|
||||
isCheckDone = true;
|
||||
oidcBtnElt.html(htmlvalue);
|
||||
|
@ -220,7 +201,7 @@ Template.userFormsLayout.events({
|
|||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
else {
|
||||
alreadyCheck = 1;
|
||||
}
|
||||
},
|
||||
|
@ -252,7 +233,7 @@ async function authentication(event, templateInstance) {
|
|||
switch (result) {
|
||||
case 'ldap':
|
||||
return new Promise(resolve => {
|
||||
Meteor.loginWithLDAP(match, password, function() {
|
||||
Meteor.loginWithLDAP(match, password, function () {
|
||||
resolve(FlowRouter.go('/'));
|
||||
});
|
||||
});
|
||||
|
@ -264,7 +245,7 @@ async function authentication(event, templateInstance) {
|
|||
{
|
||||
provider,
|
||||
},
|
||||
function() {
|
||||
function () {
|
||||
resolve(FlowRouter.go('/'));
|
||||
},
|
||||
);
|
||||
|
@ -272,7 +253,7 @@ async function authentication(event, templateInstance) {
|
|||
|
||||
case 'cas':
|
||||
return new Promise(resolve => {
|
||||
Meteor.loginWithCas(match, password, function() {
|
||||
Meteor.loginWithCas(match, password, function () {
|
||||
resolve(FlowRouter.go('/'));
|
||||
});
|
||||
});
|
||||
|
@ -298,7 +279,6 @@ function getUserAuthenticationMethod(defaultAuthenticationMethod, match) {
|
|||
Meteor.subscribe('user-authenticationMethod', match, {
|
||||
onReady() {
|
||||
const user = Users.findOne();
|
||||
|
||||
const authenticationMethod = user
|
||||
? user.authenticationMethod
|
||||
: defaultAuthenticationMethod;
|
||||
|
|
|
@ -127,6 +127,12 @@ services:
|
|||
# image: wekanteam/wekan
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-app
|
||||
# On CentOS 7 there is seccomp issue with glibc 6, so setting it to unconfined
|
||||
# to get WeKan working. See:
|
||||
# - https://github.com/wekan/wekan/issues/4585
|
||||
# - https://github.com/wekan/wekan/issues/4587
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
restart: always
|
||||
networks:
|
||||
- wekan-tier
|
||||
|
@ -336,6 +342,10 @@ services:
|
|||
#-----------------------------------------------------------------
|
||||
# ==== Debug OIDC OAuth2 etc ====
|
||||
#- DEBUG=true
|
||||
#---------------------------------------------
|
||||
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 ORACLE on premise identity manager OIM ====
|
||||
#- ORACLE_OIM_ENABLED=true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
apiVersion: v2
|
||||
appVersion: "6.28"
|
||||
appVersion: "6.30"
|
||||
dependencies:
|
||||
- condition: mongodb.enabled
|
||||
name: mongodb
|
||||
|
|
|
@ -14,7 +14,7 @@ serviceAccounts:
|
|||
##
|
||||
image:
|
||||
repository: quay.io/wekan/wekan
|
||||
tag: v6.28
|
||||
tag: v6.30
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## Configuration for wekan component
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"act-activity-notify": "اعلان فعالیت",
|
||||
"act-addAttachment": "افزودن پیوست __attachment__ به کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-deleteAttachment": "پاک کردن پیوست __attachment__ از کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-addSubtask": "فزودن کار فرعی __subtask__ به کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-addSubtask": "افزودن کار فرعی __subtask__ به کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-addLabel": "افزودن برچسب __label__ به کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-addedLabel": "برچسب اضافه شده __label__ به کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
"act-removeLabel": "برداشتن برچسب __label__ از کارت __card__ در لیست __list__ at swimlane __swimlane__ در برد __board__",
|
||||
|
@ -208,12 +208,12 @@
|
|||
"poker-twenty": "20",
|
||||
"poker-forty": "40",
|
||||
"poker-oneHundred": "100",
|
||||
"poker-unsure": "?",
|
||||
"poker-unsure": "؟",
|
||||
"poker-finish": "پایان",
|
||||
"poker-result-votes": "Votes",
|
||||
"poker-result-who": "Who",
|
||||
"poker-replay": "Replay",
|
||||
"set-estimation": "Set Estimation",
|
||||
"poker-result-votes": "آراء",
|
||||
"poker-result-who": "چه کسی",
|
||||
"poker-replay": "بازپخش",
|
||||
"set-estimation": "اعلام تخمین",
|
||||
"deletePokerPopup-title": "Delete planning poker?",
|
||||
"poker-delete-pop": "Deleting is permanent. You will lose all actions associated with this planning poker.",
|
||||
"cardDeletePopup-title": "Delete Card?",
|
||||
|
|
|
@ -229,6 +229,12 @@ if (Meteor.isServer) {
|
|||
]);
|
||||
}
|
||||
|
||||
function loadOidcConfig(service){
|
||||
check(service, String);
|
||||
var config = ServiceConfiguration.configurations.findOne({service: service});
|
||||
return config;
|
||||
}
|
||||
|
||||
function sendInvitationEmail(_id) {
|
||||
const icode = InvitationCodes.findOne(_id);
|
||||
const author = Users.findOne(Meteor.userId());
|
||||
|
@ -509,8 +515,11 @@ if (Meteor.isServer) {
|
|||
return process.env.PASSWORD_LOGIN_ENABLED === 'false';
|
||||
},
|
||||
isOidcRedirectionEnabled(){
|
||||
return process.env.OIDC_REDIRECTION_ENABLED === 'true';
|
||||
return process.env.OIDC_REDIRECTION_ENABLED === 'true' && Object.keys(loadOidcConfig("oidc")).length > 0;
|
||||
},
|
||||
getServiceConfiguration(service){
|
||||
return loadOidcConfig(service);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
692
package-lock.json
generated
692
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "v6.28.0",
|
||||
"version": "v6.30.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
|
@ -45,6 +45,7 @@
|
|||
"ldapjs": "^2.3.1",
|
||||
"markdown-it": "^12.3.2",
|
||||
"markdown-it-emoji": "^2.0.0",
|
||||
"markdown-it-mathjax3": "^4.3.1",
|
||||
"meteor-accounts-t9n": "^2.6.0",
|
||||
"meteor-node-stubs": "^1.1.0",
|
||||
"moment": "^2.29.3",
|
||||
|
|
|
@ -36,7 +36,9 @@ for(var i=0; i<urlschemes.length;i++){
|
|||
}
|
||||
|
||||
var emoji = require('markdown-it-emoji');
|
||||
var mathjax = require('markdown-it-mathjax3');
|
||||
Markdown.use(emoji);
|
||||
Markdown.use(mathjax);
|
||||
Markdown.use(markdownItMermaid);
|
||||
|
||||
if (Package.ui) {
|
||||
|
|
|
@ -7,10 +7,7 @@ if (Meteor.isClient) {
|
|||
callback = options;
|
||||
options = null;
|
||||
}
|
||||
console.log(options.loginStyle);
|
||||
console.log(callback);
|
||||
var credentialRequestCompleteCallback = Accounts.oauth.credentialRequestCompleteHandler(callback);
|
||||
console.log("credentialCallback",credentialRequestCompleteCallback);
|
||||
Oidc.requestCredential(options, credentialRequestCompleteCallback);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -12,56 +12,61 @@ Oidc.requestCredential = function (options, credentialRequestCompleteCallback) {
|
|||
options = {};
|
||||
}
|
||||
|
||||
var config = ServiceConfiguration.configurations.findOne({service: 'oidc'});
|
||||
if (!config) {
|
||||
credentialRequestCompleteCallback && credentialRequestCompleteCallback(
|
||||
new ServiceConfiguration.ConfigError('Service oidc not configured.'));
|
||||
return;
|
||||
}
|
||||
Meteor.call("getServiceConfiguration", "oidc",(_, result) => {
|
||||
if (result) {
|
||||
var config = result;
|
||||
var credentialToken = Random.secret();
|
||||
var loginStyle = OAuth._loginStyle('oidc', config, options);
|
||||
// options
|
||||
options = options || {};
|
||||
options.client_id = config.clientId;
|
||||
options.response_type = options.response_type || 'code';
|
||||
options.redirect_uri = OAuth._redirectUri('oidc', config);
|
||||
options.state = OAuth._stateParam(loginStyle, credentialToken, options.redirectUrl);
|
||||
options.scope = config.requestPermissions || 'openid profile email';
|
||||
|
||||
var credentialToken = Random.secret();
|
||||
var loginStyle = OAuth._loginStyle('oidc', config, options);
|
||||
if (config.loginStyle && config.loginStyle == 'popup') {
|
||||
options.display = 'popup';
|
||||
}
|
||||
|
||||
// options
|
||||
options = options || {};
|
||||
options.client_id = config.clientId;
|
||||
options.response_type = options.response_type || 'code';
|
||||
options.redirect_uri = OAuth._redirectUri('oidc', config);
|
||||
options.state = OAuth._stateParam(loginStyle, credentialToken, options.redirectUrl);
|
||||
options.scope = config.requestPermissions || 'openid profile email';
|
||||
var loginUrl = config.serverUrl + config.authorizationEndpoint;
|
||||
// check if the loginUrl already contains a "?"
|
||||
var first = loginUrl.indexOf('?') === -1;
|
||||
for (var k in options) {
|
||||
if (first) {
|
||||
loginUrl += '?';
|
||||
first = false;
|
||||
}
|
||||
else {
|
||||
loginUrl += '&'
|
||||
}
|
||||
loginUrl += encodeURIComponent(k) + '=' + encodeURIComponent(options[k]);
|
||||
}
|
||||
|
||||
if (config.loginStyle && config.loginStyle == 'popup') {
|
||||
options.display = 'popup';
|
||||
}
|
||||
//console.log('XXX: loginURL: ' + loginUrl)
|
||||
|
||||
var loginUrl = config.serverUrl + config.authorizationEndpoint;
|
||||
// check if the loginUrl already contains a "?"
|
||||
var first = loginUrl.indexOf('?') === -1;
|
||||
for (var k in options) {
|
||||
if (first) {
|
||||
loginUrl += '?';
|
||||
first = false;
|
||||
options.popupOptions = options.popupOptions || {};
|
||||
var popupOptions = {
|
||||
width: options.popupOptions.width || 320,
|
||||
height: options.popupOptions.height || 450
|
||||
};
|
||||
|
||||
OAuth.launchLogin({
|
||||
loginService: 'oidc',
|
||||
loginStyle: loginStyle,
|
||||
loginUrl: loginUrl,
|
||||
credentialRequestCompleteCallback: credentialRequestCompleteCallback,
|
||||
credentialToken: credentialToken,
|
||||
popupOptions: popupOptions,
|
||||
});
|
||||
}
|
||||
else {
|
||||
loginUrl += '&'
|
||||
else
|
||||
{
|
||||
credentialRequestCompleteCallback && credentialRequestCompleteCallback(
|
||||
new ServiceConfiguration.ConfigError('Service oidc not configured.'));
|
||||
return;
|
||||
}
|
||||
loginUrl += encodeURIComponent(k) + '=' + encodeURIComponent(options[k]);
|
||||
}
|
||||
|
||||
//console.log('XXX: loginURL: ' + loginUrl)
|
||||
|
||||
options.popupOptions = options.popupOptions || {};
|
||||
var popupOptions = {
|
||||
width: options.popupOptions.width || 320,
|
||||
height: options.popupOptions.height || 450
|
||||
};
|
||||
|
||||
OAuth.launchLogin({
|
||||
loginService: 'oidc',
|
||||
loginStyle: loginStyle,
|
||||
loginUrl: loginUrl,
|
||||
credentialRequestCompleteCallback: credentialRequestCompleteCallback,
|
||||
credentialToken: credentialToken,
|
||||
popupOptions: popupOptions,
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Wekan REST API v6.28</title>
|
||||
<title>Wekan REST API v6.30</title>
|
||||
|
||||
<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">
|
||||
|
||||
<li>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.28">Wekan REST API v6.28</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.30">Wekan REST API v6.30</a>
|
||||
|
||||
</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="dark-box"></div>
|
||||
<div class="content">
|
||||
<h1 id="wekan-rest-api">Wekan REST API v6.28</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v6.30</h1>
|
||||
<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>
|
||||
</blockquote>
|
||||
|
@ -15280,6 +15280,8 @@ System.out.println(response.toString());
|
|||
<span class="hljs-attr">"swimlaneId"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>,
|
||||
<span class="hljs-attr">"width"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"height"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"updatedAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"wipLimit"</span>: {
|
||||
|
@ -20996,6 +20998,8 @@ UserSecurity
|
|||
<span class="hljs-attr">"swimlaneId"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"createdAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"sort"</span>: <span class="hljs-number">0</span>,
|
||||
<span class="hljs-attr">"width"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"height"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"updatedAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"modifiedAt"</span>: <span class="hljs-string">"string"</span>,
|
||||
<span class="hljs-attr">"wipLimit"</span>: {
|
||||
|
@ -21078,6 +21082,20 @@ UserSecurity
|
|||
<td>is the list sorted</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>width</td>
|
||||
<td>string¦null</td>
|
||||
<td>false</td>
|
||||
<td>none</td>
|
||||
<td>list width, default 270px</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>height</td>
|
||||
<td>string¦null</td>
|
||||
<td>false</td>
|
||||
<td>none</td>
|
||||
<td>list height</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>updatedAt</td>
|
||||
<td>string¦null</td>
|
||||
<td>false</td>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v6.28
|
||||
version: v6.30
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
@ -3745,6 +3745,16 @@ definitions:
|
|||
is the list sorted
|
||||
type: number
|
||||
x-nullable: true
|
||||
width:
|
||||
description: |
|
||||
list width, default 270px
|
||||
type: string
|
||||
x-nullable: true
|
||||
height:
|
||||
description: |
|
||||
list height
|
||||
type: string
|
||||
x-nullable: true
|
||||
updatedAt:
|
||||
description: |
|
||||
last update of the list
|
||||
|
|
|
@ -15,8 +15,8 @@ REM Install chocolatey
|
|||
|
||||
choco install -y git curl python2 dotnet4.5.2 nano mongodb-4 mongoclient
|
||||
|
||||
curl -O https://nodejs.org/dist/v14.19.3/node-v14.19.3-x64.msi
|
||||
call node-v14.19.3-x64.msi
|
||||
curl -O https://nodejs.org/dist/v14.20.0/node-v14.20.0-x64.msi
|
||||
call node-v14.20.0-x64.msi
|
||||
|
||||
call npm config -g set msvs_version 2015
|
||||
call meteor npm config -g set msvs_version 2015
|
||||
|
|
|
@ -43,7 +43,7 @@ do
|
|||
#curl -0 -L https://npmjs.org/install.sh | sudo sh
|
||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
||||
sudo npm -g install n
|
||||
sudo n 14.19.3
|
||||
sudo n 14.20.0
|
||||
#sudo npm -g install npm
|
||||
## Latest npm with Meteor 2.2
|
||||
sudo npm -g install node-gyp
|
||||
|
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 628,
|
||||
appVersion = 630,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "6.28.0~2022-06-08"),
|
||||
appMarketingVersion = (defaultText = "6.30.0~2022-07-11"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# All supported keys are defined here together with descriptions and default values
|
||||
|
||||
# list of supported keys
|
||||
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"
|
||||
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 OIDC_REDIRECTION_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/files"
|
||||
#DEFAULT_WRITABLE_PATH="$SNAP_COMMON/files"
|
||||
|
@ -209,6 +209,10 @@ DESCRIPTION_OAUTH2_ENABLED="Enable the OAuth2 connection. Default: false"
|
|||
DEFAULT_OAUTH2_ENABLED="false"
|
||||
KEY_OAUTH2_ENABLED="oauth2-enabled"
|
||||
|
||||
DESCRIPTION_OIDC_REDIRECTION_ENABLED="Enable the OIDC/OAuth2 autologin. See https://github.com/wekan/wekan/wiki/autologin . Default: false"
|
||||
DEFAULT_OIDC_REDIRECTION_ENABLED="false"
|
||||
KEY_OIDC_REDIRECTION_ENABLED="oidc-redirection-enabled"
|
||||
|
||||
DESCRIPTION_OAUTH2_CA_CERT="Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299."
|
||||
DEFAULT_OAUTH2_CA_CERT=""
|
||||
KEY_OAUTH2_CA_CERT="oauth2-ca-cert"
|
||||
|
|
|
@ -214,6 +214,12 @@ 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 "OIDC/OAuth2 redirection to autologin, see https://github.com/wekan/wekan/wiki/autologin"
|
||||
echo -e "To enable the autologin of Wekan:"
|
||||
echo -e "\t$ snap set $SNAP_NAME oidc-redirection-enabled='true'"
|
||||
echo -e "\t-Disable the autologin of Wekan:"
|
||||
echo -e "\t$ snap unset $SNAP_NAME oidc-redirection-enabled"
|
||||
echo -e "\n"
|
||||
echo -e "Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299"
|
||||
echo -e "To enable the OAuth2 of Wekan:"
|
||||
echo -e "\t$ snap set $SNAP_NAME oauth2-ca-cert='ABCD134'"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
name: wekan
|
||||
version: '6.28'
|
||||
version: '6.30'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
|
@ -102,7 +102,7 @@ parts:
|
|||
wekan:
|
||||
source: .
|
||||
plugin: npm
|
||||
npm-node-version: 14.19.3
|
||||
npm-node-version: 14.20.0
|
||||
#npm-packages:
|
||||
# - node-gyp
|
||||
# - node-pre-gyp
|
||||
|
@ -132,7 +132,7 @@ parts:
|
|||
#echo "registry=http://registry.npmjs.org/" > ~/.npmrc
|
||||
#echo "Installing npm, node-gyp, node-pre-gyp, fibers"
|
||||
#npm -g install n --unsafe-perm
|
||||
#n 14.19.3
|
||||
#n 14.20.0
|
||||
#npm -g install node-gyp --unsafe-perm
|
||||
#npm -g install node-pre-gyp --unsafe-perm
|
||||
#npm -g install fibers --unsafe-perm
|
||||
|
@ -160,9 +160,9 @@ parts:
|
|||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v6.28/wekan-6.28-amd64.zip
|
||||
unzip wekan-6.28-amd64.zip
|
||||
rm wekan-6.28-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v6.30/wekan-6.30-amd64.zip
|
||||
unzip wekan-6.30-amd64.zip
|
||||
rm wekan-6.30-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
@ -177,12 +177,12 @@ parts:
|
|||
#rm fibers-multi.7z
|
||||
#cd ../../../../../../..
|
||||
# Copy to Snap
|
||||
wget https://nodejs.org/dist/latest-v14.x/node-v14.19.3-linux-x64.tar.xz
|
||||
tar -xf node-v14.19.3-linux-x64.tar.xz node-v14.19.3-linux-x64/bin/node
|
||||
rm node-v14.19.3-linux-x64.tar.xz
|
||||
wget https://nodejs.org/dist/latest-v14.x/node-v14.20.0-linux-x64.tar.xz
|
||||
tar -xf node-v14.20.0-linux-x64.tar.xz node-v14.20.0-linux-x64/bin/node
|
||||
rm node-v14.20.0-linux-x64.tar.xz
|
||||
mkdir $SNAPCRAFT_PART_INSTALL/bin
|
||||
cp -p node-v14.19.3-linux-x64/bin/node $SNAPCRAFT_PART_INSTALL/bin/
|
||||
rm -rf node-v14.19.3-linux-x64
|
||||
cp -p node-v14.20.0-linux-x64/bin/node $SNAPCRAFT_PART_INSTALL/bin/
|
||||
rm -rf node-v14.20.0-linux-x64
|
||||
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
|
||||
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
|
||||
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
set -euxo pipefail
|
||||
|
||||
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
|
||||
NODE_VERSION=v14.19.3
|
||||
NODE_VERSION=v14.20.0
|
||||
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
|
||||
USE_EDGE=false
|
||||
METEOR_EDGE=1.5-beta.17
|
||||
|
|
|
@ -128,6 +128,12 @@ REM SET WEBHOOKS_ATTRIBUTES=
|
|||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM ## ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
REM ## https://github.com/wekan/wekan/wiki/autologin
|
||||
REM # SET OIDC_REDIRECTION_ENABLED=true
|
||||
|
||||
REM ------------------------------------------------------------
|
||||
|
||||
REM # OAUTH2 ORACLE on premise identity manager OIM
|
||||
REM SET ORACLE_OIM_ENABLED=true
|
||||
|
||||
|
|
|
@ -137,6 +137,10 @@
|
|||
# Example: export WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
export WEBHOOKS_ATTRIBUTES=''
|
||||
#---------------------------------------------
|
||||
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#export OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------
|
||||
# OAUTH2 ORACLE on premise identity manager OIM
|
||||
#export ORACLE_OIM_ENABLED=true
|
||||
#---------------------------------------------
|
||||
|
|
|
@ -351,6 +351,10 @@ services:
|
|||
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#- WEBHOOKS_ATTRIBUTES=
|
||||
#-----------------------------------------------------------------
|
||||
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------
|
||||
# ==== OAUTH2 ORACLE on premise identity manager OIM ====
|
||||
#- ORACLE_OIM_ENABLED=true
|
||||
#-----------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue