mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00
39 lines
977 B
JavaScript
39 lines
977 B
JavaScript
import LDAP from './ldap';
|
|
|
|
Meteor.methods({
|
|
ldap_test_connection() {
|
|
const user = Meteor.user();
|
|
if (!user) {
|
|
throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'ldap_test_connection' });
|
|
}
|
|
|
|
//TODO: This needs to be fixed - security issue -> alanning:meteor-roles
|
|
//if (!RocketChat.authz.hasRole(user._id, 'admin')) {
|
|
// throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'ldap_test_connection' });
|
|
//}
|
|
|
|
if (LDAP.settings_get(LDAP_ENABLE) !== true) {
|
|
throw new Meteor.Error('LDAP_disabled');
|
|
}
|
|
|
|
let ldap;
|
|
try {
|
|
ldap = new LDAP();
|
|
ldap.connectSync();
|
|
} catch (error) {
|
|
console.log(error);
|
|
throw new Meteor.Error(error.message);
|
|
}
|
|
|
|
try {
|
|
ldap.bindIfNecessary();
|
|
} catch (error) {
|
|
throw new Meteor.Error(error.name || error.message);
|
|
}
|
|
|
|
return {
|
|
message: 'Connection_success',
|
|
params: [],
|
|
};
|
|
},
|
|
});
|