Compare commits

...
7 Commits
Author SHA1 Message Date
Lauri Ojansivu 9c4e305a84 v1.82 2018-12-05 08:53:40 +02:00
Lauri Ojansivu 167197fcda - Partially #2045 revert, continue.
Thanks to xet7 !
2018-12-05 08:47:48 +02:00
Lauri Ojansivu e3a40aca6f This release fixes the following bugs:
- Partially #2045 revert [Improve authentication](https://github.com/wekan/wekan/issues/2016),
  adding back password/LDAP dropdown, because login did now work.
  NOTE: This was added in v1.71, reverted at v1.73 because login did not work, added back at v1.79,
  and then reverted partially at v1.82 because login did not work.
  Related LDAP logout timer does not work yet.

Thanks to xet7 !
2018-12-05 08:20:59 +02:00
Lauri Ojansivu 0611e0c4bd Add text about fixing bugs. 2018-12-04 22:32:30 +02:00
Lauri Ojansivu d6857693bb v1.81 2018-12-04 22:30:54 +02:00
Lauri Ojansivu b5ccf7a58f - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:23:49 +02:00
Lauri Ojansivu bfca1822a0 - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:20:24 +02:00
11 changed files with 78 additions and 88 deletions

No files matched your search

-1
View File
@@ -89,4 +89,3 @@ mquandalle:moment
msavin:usercache
wekan:wekan-ldap
wekan:accounts-cas
msavin:sjobs
-1
View File
@@ -117,7 +117,6 @@ mquandalle:jquery-ui-drag-drop-sort@0.2.0
mquandalle:moment@1.0.1
mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
msavin:sjobs@3.0.6
msavin:usercache@1.0.0
npm-bcrypt@0.9.3
npm-mongo@2.2.33
+24
View File
@@ -1,3 +1,27 @@
# v1.82 2018-12-05 Wekan release
This release fixes the following bugs:
- Partially #2045 revert [Improve authentication](https://github.com/wekan/wekan/issues/2016),
adding back password/LDAP dropdown, because login did now work.
NOTE: This was added in v1.71, reverted at v1.73 because login did not work, added back at v1.79,
and then reverted partially at v1.82 because login did not work.
Related LDAP logout timer does not work yet.
Thanks to GitHub user xet7 for contributions.
# v1.81 2018-12-04 Wekan release
This release fixes the following bugs:
- Remove extra commas `,` and add missing backslash `\`.
Maybe after that login, logout and CORS works.
Thanks to GitHub user xet7 for contributions.
Related #2045,
related wekan/wekan-snap#69
# v1.80 2018-12-03 Wekan release
This release adds the following new features:
+2 -2
View File
@@ -137,8 +137,8 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
LDAP_SYNC_USER_DATA=false \
LDAP_SYNC_USER_DATA_FIELDMAP="" \
LDAP_SYNC_GROUP_ROLES="" \
LDAP_DEFAULT_DOMAIN=""
LOGOUT_WITH_TIMER="false" \
LDAP_DEFAULT_DOMAIN="" \
LOGOUT_WITH_TIMER=false \
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
+1
View File
@@ -23,6 +23,7 @@ template(name="userFormsLayout")
br
section.auth-dialog
+Template.dynamic(template=content)
+connectionMethod
if isCas
.at-form
button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
+47 -49
View File
@@ -6,14 +6,29 @@ const i18nTagToT9n = (i18nTag) => {
return i18nTag;
};
Template.userFormsLayout.onCreated(function() {
Meteor.call('getDefaultAuthenticationMethod', (error, result) => {
this.data.defaultAuthenticationMethod = new ReactiveVar(error ? undefined : result);
});
const validator = {
set(obj, prop, value) {
if (prop === 'state' && value !== 'signIn') {
$('.at-form-authentication').hide();
} else if (prop === 'state' && value === 'signIn') {
$('.at-form-authentication').show();
}
// The default behavior to store the value
obj[prop] = value;
// Indicate success
return true;
},
};
Template.userFormsLayout.onCreated(() => {
Meteor.subscribe('setting');
});
Template.userFormsLayout.onRendered(() => {
AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
const i18nTag = navigator.language;
if (i18nTag) {
T9n.setLanguage(i18nTagToT9n(i18nTag));
@@ -22,6 +37,7 @@ Template.userFormsLayout.onRendered(() => {
});
Template.userFormsLayout.helpers({
currentSetting() {
return Settings.findOne();
},
@@ -76,14 +92,13 @@ Template.userFormsLayout.events({
}
});
},
'click #at-btn'(event, instance) {
'click #at-btn'(event) {
/* All authentication method can be managed/called here.
!! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
*/
const email = $('#at-field-username_and_email').val();
const password = $('#at-field-password').val();
if (FlowRouter.getRouteName() !== 'atSignIn' || password === '' || email === '') {
const authenticationMethodSelected = $('.select-authentication').val();
// Local account
if (authenticationMethodSelected === 'password') {
return;
}
@@ -91,11 +106,29 @@ Template.userFormsLayout.events({
event.preventDefault();
event.stopImmediatePropagation();
Meteor.subscribe('user-authenticationMethod', email, {
onReady() {
return authentication.call(this, instance, email, password);
},
});
const email = $('#at-field-username_and_email').val();
const password = $('#at-field-password').val();
// Ldap account
if (authenticationMethodSelected === 'ldap') {
// Check if the user can use the ldap connection
Meteor.subscribe('user-authenticationMethod', email, {
onReady() {
const user = Users.findOne();
if (user === undefined || user.authenticationMethod === 'ldap') {
// Use the ldap connection package
Meteor.loginWithLDAP(email, password, function(error) {
if (!error) {
// Connection
return FlowRouter.go('/');
}
return error;
});
}
return this.stop();
},
});
}
},
});
@@ -104,38 +137,3 @@ Template.defaultLayout.events({
Modal.close();
},
});
function authentication(instance, email, password) {
let user = Users.findOne();
// Authentication with password
if (user && user.authenticationMethod === 'password') {
$('#at-pwd-form').submit();
// Meteor.call('logoutWithTimer', user._id, () => {});
return this.stop();
}
// If user doesn't exist, uses the default authentication method if it defined
if (user === undefined) {
user = {
'authenticationMethod': instance.data.defaultAuthenticationMethod.get(),
};
}
// Authentication with LDAP
if (user.authenticationMethod === 'ldap') {
// Use the ldap connection package
Meteor.loginWithLDAP(email, password, function(error) {
if (!error) {
// Meteor.call('logoutWithTimer', Users.findOne()._id, () => {});
return FlowRouter.go('/');
}
return error;
});
}
/* else {
process.env.DEFAULT_AUTHENTICATION_METHOD is not defined
} */
return this.stop();
}
-30
View File
@@ -239,35 +239,5 @@ if (Meteor.isServer) {
cas: isCasEnabled(),
};
},
getDefaultAuthenticationMethod() {
return process.env.DEFAULT_AUTHENTICATION_METHOD;
},
// TODO: patch error : did not check all arguments during call
logoutWithTimer(userId) {
if (process.env.LOGOUT_WITH_TIMER) {
Jobs.run('logOut', userId, {
in: {
days: process.env.LOGOUT_IN,
},
on: {
hour: process.env.LOGOUT_ON_HOURS,
minute: process.env.LOGOUT_ON_MINUTES,
},
priority: 1,
});
}
},
});
Jobs.register({
logOut(userId) {
Meteor.users.update(
{_id: userId},
{$set: {'services.resume.loginTokens': []}}
);
this.success();
},
});
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v1.80.0",
"version": "v1.82.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 182,
appVersion = 184,
# Increment this for every release.
appMarketingVersion = (defaultText = "1.80.0~2018-12-03"),
appMarketingVersion = (defaultText = "1.82.0~2018-12-05"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
-1
View File
@@ -22,7 +22,6 @@ Meteor.publish('user-authenticationMethod', function(match) {
check(match, String);
return Users.find({$or: [{_id: match}, {email: match}, {username: match}]}, {
fields: {
'_id': 1,
'authenticationMethod': 1,
},
});
+1 -1
View File
@@ -3,7 +3,7 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER, LOGOUT_IN, LOGOUT_ON_HOURS, LOGOUT_ON_MINUTES"
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES"
# default values
DESCRIPTION_MONGODB_BIND_UNIX_SOCKET="mongodb binding unix socket:\n"\