123456789101112131415161718192021222324252627282930313233343536373839 |
- 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: [],
- };
- },
- });
|