You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.6 KiB
130 lines
3.6 KiB
|
|
/** |
|
* Copyright (c) 2015, Arthur Schiwon <blizzz@owncloud.com> |
|
* This file is licensed under the Affero General Public License version 3 or later. |
|
* See the COPYING-README file. |
|
*/ |
|
|
|
OCA = OCA || {}; |
|
|
|
(function() { |
|
|
|
/** |
|
* @classdesc This class represents the view belonging to the expert tab |
|
* in the LDAP wizard. |
|
*/ |
|
var WizardTabExpert = OCA.LDAP.Wizard.WizardTabGeneric.subClass({ |
|
/** |
|
* initializes the instance. Always call it after initialization. |
|
* |
|
* @param tabIndex |
|
* @param tabID |
|
*/ |
|
init: function (tabIndex, tabID) { |
|
this._super(tabIndex, tabID); |
|
|
|
var items = { |
|
ldap_expert_username_attr: { |
|
$element: $('#ldap_expert_username_attr'), |
|
setMethod: 'setUsernameAttribute' |
|
}, |
|
ldap_expert_uuid_user_attr: { |
|
$element: $('#ldap_expert_uuid_user_attr'), |
|
setMethod: 'setUserUUIDAttribute' |
|
}, |
|
ldap_expert_uuid_group_attr: { |
|
$element: $('#ldap_expert_uuid_group_attr'), |
|
setMethod: 'setGroupUUIDAttribute' |
|
}, |
|
|
|
//Buttons |
|
ldap_action_clear_user_mappings: { |
|
$element: $('#ldap_action_clear_user_mappings') |
|
}, |
|
ldap_action_clear_group_mappings: { |
|
$element: $('#ldap_action_clear_group_mappings') |
|
} |
|
|
|
}; |
|
this.setManagedItems(items); |
|
_.bindAll(this, 'onClearUserMappingsClick', 'onClearGroupMappingsClick'); |
|
this.managedItems.ldap_action_clear_user_mappings.$element.click(this.onClearUserMappingsClick); |
|
this.managedItems.ldap_action_clear_group_mappings.$element.click(this.onClearGroupMappingsClick); |
|
}, |
|
|
|
/** |
|
* Sets the config model for this view and subscribes to some events. |
|
* Also binds the config chooser to the model |
|
* |
|
* @param {OCA.LDAP.Wizard.ConfigModel} configModel |
|
*/ |
|
setModel: function(configModel) { |
|
this._super(configModel); |
|
this.configModel.on('configLoaded', this.onConfigLoaded, this); |
|
this.configModel.on('receivedLdapFeature', this.onResultReceived, this); |
|
}, |
|
|
|
/** |
|
* sets the attribute to be used to create an Nextcloud ID (username) |
|
* |
|
* @param {string} attribute |
|
*/ |
|
setUsernameAttribute: function(attribute) { |
|
this.setElementValue(this.managedItems.ldap_expert_username_attr.$element, attribute); |
|
}, |
|
|
|
/** |
|
* sets the attribute that provides an unique identifier per LDAP user |
|
* entry |
|
* |
|
* @param {string} attribute |
|
*/ |
|
setUserUUIDAttribute: function(attribute) { |
|
this.setElementValue(this.managedItems.ldap_expert_uuid_user_attr.$element, attribute); |
|
}, |
|
|
|
/** |
|
* sets the attribute that provides an unique identifier per LDAP group |
|
* entry |
|
* |
|
* @param {string} attribute |
|
*/ |
|
setGroupUUIDAttribute: function(attribute) { |
|
this.setElementValue(this.managedItems.ldap_expert_uuid_group_attr.$element, attribute); |
|
}, |
|
|
|
/** |
|
* requests clearing of all user mappings |
|
*/ |
|
onClearUserMappingsClick: function() { |
|
this.configModel.requestWizard('ldap_action_clear_user_mappings', {ldap_clear_mapping: 'user'}); |
|
}, |
|
|
|
/** |
|
* requests clearing of all group mappings |
|
*/ |
|
onClearGroupMappingsClick: function() { |
|
this.configModel.requestWizard('ldap_action_clear_group_mappings', {ldap_clear_mapping: 'group'}); |
|
}, |
|
|
|
/** |
|
* deals with the result of the Test Connection test |
|
* |
|
* @param {WizardTabAdvanced} view |
|
* @param {FeaturePayload} payload |
|
*/ |
|
onResultReceived: function(view, payload) { |
|
if(payload.feature === 'ClearMappings') { |
|
var message; |
|
if(payload.data.status === 'success') { |
|
message = t('user_ldap', 'Mappings cleared successfully!'); |
|
} else { |
|
message = t('user_ldap', 'Error while clearing the mappings.'); |
|
} |
|
OC.Notification.showTemporary(message); |
|
} |
|
} |
|
}); |
|
|
|
OCA.LDAP.Wizard.WizardTabExpert = WizardTabExpert; |
|
})();
|
|
|