summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/js
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@owncloud.com>2013-10-08 23:47:57 +0200
committerArthur Schiwon <blizzz@owncloud.com>2013-10-17 19:13:28 +0200
commit7c6a9c22562f03eefb6730fc53afeed360c0171e (patch)
tree417adb13f77791f61f9cd7f3407c44dc13f7d44f /apps/user_ldap/js
parente903db7887fe9ffc61791610d098dd623552da5d (diff)
downloadnextcloud-server-7c6a9c22562f03eefb6730fc53afeed360c0171e.tar.gz
nextcloud-server-7c6a9c22562f03eefb6730fc53afeed360c0171e.zip
Ldap Wizard: Login filter UI, detection of username attribute, composing of login filter
Diffstat (limited to 'apps/user_ldap/js')
-rw-r--r--apps/user_ldap/js/settings.js53
1 files changed, 52 insertions, 1 deletions
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index d3c7aeea4f7..ba000c200f5 100644
--- a/apps/user_ldap/js/settings.js
+++ b/apps/user_ldap/js/settings.js
@@ -210,6 +210,8 @@ var LdapWizard = {
composeFilter: function(type) {
if(type == 'user') {
action = 'getUserListFilter';
+ } else if(type == 'login') {
+ action = 'getUserLoginFilter';
}
param = 'action='+action+
@@ -241,6 +243,32 @@ var LdapWizard = {
);
},
+ findAttributes: function() {
+ param = 'action=determineAttributes'+
+ '&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val();
+
+ LdapWizard.ajax(param,
+ function(result) {
+ $('#ldap_loginfilter_attributes').find('option').remove();
+ for (i in result.options['ldap_loginfilter_attributes']) {
+ //FIXME: move HTML into template
+ attr = result.options['ldap_loginfilter_attributes'][i];
+ $('#ldap_loginfilter_attributes').append(
+ "<option value='"+attr+"'>"+attr+"</option>");
+ }
+ LdapWizard.applyChanges(result);
+ $('#ldap_loginfilter_attributes').multiselect('refresh');
+ $('#ldap_loginfilter_attributes').multiselect('enable');
+ },
+ function (result) {
+ //deactivate if no attributes found
+ $('#ldap_loginfilter_attributes').multiselect(
+ {noneSelectedText : 'No attributes found'});
+ $('#ldap_loginfilter_attributes').multiselect('disable');
+ }
+ );
+ },
+
findAvailableGroups: function() {
param = 'action=determineGroups'+
'&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val();
@@ -297,6 +325,10 @@ var LdapWizard = {
}
},
+ initLoginFilter: function() {
+ LdapWizard.findAttributes();
+ },
+
initMultiSelect: function(object, id, caption) {
object.multiselect({
header: false,
@@ -318,6 +350,8 @@ var LdapWizard = {
onTabChange: function(event, ui) {
if(ui.newTab[0].id === '#ldapWizard2') {
LdapWizard.initUserFilter();
+ } else if(ui.newTab[0].id === '#ldapWizard3') {
+ LdapWizard.initLoginFilter();
}
},
@@ -333,6 +367,11 @@ var LdapWizard = {
if(triggerObj.id == 'ldap_userlist_filter') {
LdapWizard.countUsers();
}
+
+ if(triggerObj.id == 'ldap_loginfilter_username'
+ || triggerObj.id == 'ldap_loginfilter_email') {
+ LdapWizard.composeFilter('login');
+ }
},
save: function(inputObj) {
@@ -340,7 +379,13 @@ var LdapWizard = {
delete LdapWizard.saveBlacklist[inputObj.id];
return;
}
- LdapWizard._save(inputObj, $(inputObj).val());
+ if($(inputObj).is('input[type=checkbox]')
+ && !$(inputObj).is(':checked')) {
+ val = 0;
+ } else {
+ val = $(inputObj).val();
+ }
+ LdapWizard._save(inputObj, val);
},
saveMultiSelect: function(originalObj, resultObj) {
@@ -352,7 +397,10 @@ var LdapWizard = {
if(originalObj == 'ldap_userfilter_objectclass'
|| originalObj == 'ldap_userfilter_groups') {
LdapWizard.composeFilter('user');
+ } else if(originalObj == 'ldap_loginfilter_attributes') {
+ LdapWizard.composeFilter('login');
}
+
},
_save: function(object, value) {
@@ -410,6 +458,9 @@ $(document).ready(function() {
LdapWizard.initMultiSelect($('#ldap_userfilter_objectclass'),
'ldap_userfilter_objectclass',
t('user_ldap', 'Select object classes'));
+ LdapWizard.initMultiSelect($('#ldap_loginfilter_attributes'),
+ 'ldap_loginfilter_attributes',
+ t('user_ldap', 'Select attributes'));
$('.lwautosave').change(function() { LdapWizard.save(this); });
$('#toggleRawUserFilter').click(LdapWizard.toggleRawUserFilter);
LdapConfiguration.refreshConfig();