diff options
Diffstat (limited to 'apps/user_ldap/js')
42 files changed, 982 insertions, 191 deletions
diff --git a/apps/user_ldap/js/renewPassword.js b/apps/user_ldap/js/renewPassword.js index 307d5f8294d..65615d90889 100644 --- a/apps/user_ldap/js/renewPassword.js +++ b/apps/user_ldap/js/renewPassword.js @@ -1,22 +1,6 @@ /** - * - * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -32,7 +16,7 @@ OCA.LDAP = _.extend(OC.LDAP || {}, { window.addEventListener('DOMContentLoaded', function() { $('form[name=renewpassword]').submit(OCA.LDAP.onRenewPassword); - + if($('#newPassword').length) { $('#newPassword').showPassword().keyup(); } diff --git a/apps/user_ldap/js/vendor/ui-multiselect/src/jquery.multiselect.js b/apps/user_ldap/js/vendor/ui-multiselect/src/jquery.multiselect.js new file mode 100644 index 00000000000..4dc6ab5ffbe --- /dev/null +++ b/apps/user_ldap/js/vendor/ui-multiselect/src/jquery.multiselect.js @@ -0,0 +1,707 @@ +/* jshint forin:true, noarg:true, noempty:true, eqeqeq:true, boss:true, undef:true, curly:true, browser:true, jquery:true */ +/* + * jQuery MultiSelect UI Widget 1.13 + * Copyright (c) 2012 Eric Hynds + * + * http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/ + * + * Depends: + * - jQuery 1.4.2+ + * - jQuery UI 1.8 widget factory + * + * Optional: + * - jQuery UI effects + * - jQuery UI position utility + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * SPDX-FileCopyrightText: 2012 Eric Hynds + * SPDX-License-Identifier: MIT + */ +(function($, undefined){ + +var multiselectID = 0; + +$.widget("ech.multiselect", { + + // default options + options: { + header: true, + height: 175, + minWidth: 225, + classes: '', + checkAllText: 'Check all', + uncheckAllText: 'Uncheck all', + noneSelectedText: 'Select options', + selectedText: '# selected', + selectedList: 0, + show: null, + hide: null, + autoOpen: false, + multiple: true, + position: {} + }, + + _create: function(){ + var el = this.element.hide(), + o = this.options; + + this.speed = $.fx.speeds._default; // default speed for effects + this._isOpen = false; // assume no + + var + button = (this.button = $('<button type="button"><span class="ui-icon ui-icon-triangle-2-n-s"></span></button>')) + .addClass('ui-multiselect ui-widget ui-state-default ui-corner-all') + .addClass( o.classes ) + .attr({ 'title':el.attr('title'), 'aria-haspopup':true, 'tabIndex':el.attr('tabIndex') }) + .insertAfter( el ), + + buttonlabel = (this.buttonlabel = $('<span />')) + .html( o.noneSelectedText ) + .appendTo( button ), + + menu = (this.menu = $('<div />')) + .addClass('ui-multiselect-menu ui-widget ui-widget-content ui-corner-all') + .addClass( o.classes ) + .appendTo( document.body ), + + header = (this.header = $('<div />')) + .addClass('ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix') + .appendTo( menu ), + + headerLinkContainer = (this.headerLinkContainer = $('<ul />')) + .addClass('ui-helper-reset') + .html(function(){ + if( o.header === true ){ + return '<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>' + o.checkAllText + '</span></a></li><li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>' + o.uncheckAllText + '</span></a></li>'; + } else if(typeof o.header === "string"){ + return '<li>' + o.header + '</li>'; + } else { + return ''; + } + }) + .append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon ui-icon-circle-close"></span></a></li>') + .appendTo( header ), + + checkboxContainer = (this.checkboxContainer = $('<ul />')) + .addClass('ui-multiselect-checkboxes ui-helper-reset') + .appendTo( menu ); + + // perform event bindings + this._bindEvents(); + + // build menu + this.refresh( true ); + + // some addl. logic for single selects + if( !o.multiple ){ + menu.addClass('ui-multiselect-single'); + } + }, + + _init: function(){ + if( this.options.header === false ){ + this.header.hide(); + } + if( !this.options.multiple ){ + this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').hide(); + } + if( this.options.autoOpen ){ + this.open(); + } + if( this.element.is(':disabled') ){ + this.disable(); + } + }, + + refresh: function( init ){ + var el = this.element, + o = this.options, + menu = this.menu, + checkboxContainer = this.checkboxContainer, + optgroups = [], + html = "", + id = el.attr('id') || multiselectID++; // unique ID for the label & option tags + + // build items + el.find('option').each(function( i ){ + var $this = $(this), + parent = this.parentNode, + title = this.innerHTML, + description = this.title, + value = this.value, + inputID = 'ui-multiselect-' + (this.id || id + '-option-' + i), + isDisabled = this.disabled, + isSelected = this.selected, + labelClasses = [ 'ui-corner-all' ], + liClasses = (isDisabled ? 'ui-multiselect-disabled ' : ' ') + this.className, + optLabel; + + // is this an optgroup? + if( parent.tagName === 'OPTGROUP' ){ + optLabel = parent.getAttribute( 'label' ); + + // has this optgroup been added already? + if( $.inArray(optLabel, optgroups) === -1 ){ + html += '<li class="ui-multiselect-optgroup-label ' + parent.className + '"><a href="#">' + optLabel + '</a></li>'; + optgroups.push( optLabel ); + } + } + + if( isDisabled ){ + labelClasses.push( 'ui-state-disabled' ); + } + + // browsers automatically select the first option + // by default with single selects + if( isSelected && !o.multiple ){ + labelClasses.push( 'ui-state-active' ); + } + + html += '<li class="' + liClasses + '">'; + + // create the label + html += '<label for="' + inputID + '" title="' + description + '" class="' + labelClasses.join(' ') + '">'; + html += '<input id="' + inputID + '" name="multiselect_' + id + '" type="' + (o.multiple ? "checkbox" : "radio") + '" value="' + value + '" title="' + title + '"'; + + // pre-selected? + if( isSelected ){ + html += ' checked="checked"'; + html += ' aria-selected="true"'; + } + + // disabled? + if( isDisabled ){ + html += ' disabled="disabled"'; + html += ' aria-disabled="true"'; + } + + // add the title and close everything off + html += ' /><span>' + title + '</span></label></li>'; + }); + + // insert into the DOM + checkboxContainer.html( html ); + + // cache some moar useful elements + this.labels = menu.find('label'); + this.inputs = this.labels.children('input'); + + // set widths + this._setButtonWidth(); + this._setMenuWidth(); + + // remember default value + this.button[0].defaultValue = this.update(); + + // broadcast refresh event; useful for widgets + if( !init ){ + this._trigger('refresh'); + } + }, + + // updates the button text. call refresh() to rebuild + update: function(){ + var o = this.options, + $inputs = this.inputs, + $checked = $inputs.filter(':checked'), + numChecked = $checked.length, + value; + + if( numChecked === 0 ){ + value = o.noneSelectedText; + } else { + if($.isFunction( o.selectedText )){ + value = o.selectedText.call(this, numChecked, $inputs.length, $checked.get()); + } else if( /\d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList){ + value = $checked.map(function(){ return $(this).next().html(); }).get().join(', '); + } else { + value = o.selectedText.replace('#', numChecked).replace('#', $inputs.length); + } + } + + this.buttonlabel.html( value ); + return value; + }, + + // binds events + _bindEvents: function(){ + var self = this, button = this.button; + + function clickHandler(){ + self[ self._isOpen ? 'close' : 'open' ](); + return false; + } + + // webkit doesn't like it when you click on the span :( + button + .find('span') + .bind('click.multiselect', clickHandler); + + // button events + button.bind({ + click: clickHandler, + keypress: function( e ){ + switch(e.which){ + case 27: // esc + case 38: // up + case 37: // left + self.close(); + break; + case 39: // right + case 40: // down + self.open(); + break; + } + }, + mouseenter: function(){ + if( !button.hasClass('ui-state-disabled') ){ + $(this).addClass('ui-state-hover'); + } + }, + mouseleave: function(){ + $(this).removeClass('ui-state-hover'); + }, + focus: function(){ + if( !button.hasClass('ui-state-disabled') ){ + $(this).addClass('ui-state-focus'); + } + }, + blur: function(){ + $(this).removeClass('ui-state-focus'); + } + }); + + // header links + this.header + .delegate('a', 'click.multiselect', function( e ){ + // close link + if( $(this).hasClass('ui-multiselect-close') ){ + self.close(); + + // check all / uncheck all + } else { + self[ $(this).hasClass('ui-multiselect-all') ? 'checkAll' : 'uncheckAll' ](); + } + + e.preventDefault(); + }); + + // optgroup label toggle support + this.menu + .delegate('li.ui-multiselect-optgroup-label a', 'click.multiselect', function( e ){ + e.preventDefault(); + + var $this = $(this), + $inputs = $this.parent().nextUntil('li.ui-multiselect-optgroup-label').find('input:visible:not(:disabled)'), + nodes = $inputs.get(), + label = $this.parent().text(); + + // trigger event and bail if the return is false + if( self._trigger('beforeoptgrouptoggle', e, { inputs:nodes, label:label }) === false ){ + return; + } + + // toggle inputs + self._toggleChecked( + $inputs.filter(':checked').length !== $inputs.length, + $inputs + ); + + self._trigger('optgrouptoggle', e, { + inputs: nodes, + label: label, + checked: nodes[0].checked + }); + }) + .delegate('label', 'mouseenter.multiselect', function(){ + if( !$(this).hasClass('ui-state-disabled') ){ + self.labels.removeClass('ui-state-hover'); + $(this).addClass('ui-state-hover').find('input').focus(); + } + }) + .delegate('label', 'keydown.multiselect', function( e ){ + e.preventDefault(); + + switch(e.which){ + case 9: // tab + case 27: // esc + self.close(); + break; + case 38: // up + case 40: // down + case 37: // left + case 39: // right + self._traverse(e.which, this); + break; + case 13: // enter + $(this).find('input')[0].click(); + break; + } + }) + .delegate('input[type="checkbox"], input[type="radio"]', 'click.multiselect', function( e ){ + var $this = $(this), + val = this.value, + checked = this.checked, + tags = self.element.find('option'); + + // bail if this input is disabled or the event is cancelled + if( this.disabled || self._trigger('click', e, { value: val, text: this.title, checked: checked }) === false ){ + e.preventDefault(); + return; + } + + // make sure the input has focus. otherwise, the esc key + // won't close the menu after clicking an item. + $this.focus(); + + // toggle aria state + $this.attr('aria-selected', checked); + + // change state on the original option tags + tags.each(function(){ + if( this.value === val ){ + this.selected = checked; + } else if( !self.options.multiple ){ + this.selected = false; + } + }); + + // some additional single select-specific logic + if( !self.options.multiple ){ + self.labels.removeClass('ui-state-active'); + $this.closest('label').toggleClass('ui-state-active', checked ); + + // close menu + self.close(); + } + + // fire change on the select box + self.element.trigger("change"); + + // setTimeout is to fix multiselect issue #14 and #47. caused by jQuery issue #3827 + // http://bugs.jquery.com/ticket/3827 + setTimeout($.proxy(self.update, self), 10); + }); + + // close each widget when clicking on any other element/anywhere else on the page + $(document).bind('mousedown.multiselect', function( e ){ + if(self._isOpen && !$.contains(self.menu[0], e.target) && !$.contains(self.button[0], e.target) && e.target !== self.button[0]){ + self.close(); + } + }); + + // deal with form resets. the problem here is that buttons aren't + // restored to their defaultValue prop on form reset, and the reset + // handler fires before the form is actually reset. delaying it a bit + // gives the form inputs time to clear. + $(this.element[0].form).bind('reset.multiselect', function(){ + setTimeout($.proxy(self.refresh, self), 10); + }); + }, + + // set button width + _setButtonWidth: function(){ + var width = this.element.outerWidth(), + o = this.options; + + if( /\d/.test(o.minWidth) && width < o.minWidth){ + width = o.minWidth; + } + + // set widths + this.button.width( width ); + }, + + // set menu width + _setMenuWidth: function(){ + var m = this.menu, + width = this.button.outerWidth()- + parseInt(m.css('padding-left'),10)- + parseInt(m.css('padding-right'),10)- + parseInt(m.css('border-right-width'),10)- + parseInt(m.css('border-left-width'),10); + + m.width( width || this.button.outerWidth() ); + }, + + // move up or down within the menu + _traverse: function( which, start ){ + var $start = $(start), + moveToLast = which === 38 || which === 37, + + // select the first li that isn't an optgroup label / disabled + $next = $start.parent()[moveToLast ? 'prevAll' : 'nextAll']('li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup-label)')[ moveToLast ? 'last' : 'first'](); + + // if at the first/last element + if( !$next.length ){ + var $container = this.menu.find('ul').last(); + + // move to the first/last + this.menu.find('label')[ moveToLast ? 'last' : 'first' ]().trigger('mouseover'); + + // set scroll position + $container.scrollTop( moveToLast ? $container.height() : 0 ); + + } else { + $next.find('label').trigger('mouseover'); + } + }, + + // This is an internal function to toggle the checked property and + // other related attributes of a checkbox. + // + // The context of this function should be a checkbox; do not proxy it. + _toggleState: function( prop, flag ){ + return function(){ + if( !this.disabled ) { + this[ prop ] = flag; + } + + if( flag ){ + this.setAttribute('aria-selected', true); + } else { + this.removeAttribute('aria-selected'); + } + }; + }, + + _toggleChecked: function( flag, group ){ + var $inputs = (group && group.length) ? group : this.inputs, + self = this; + + // toggle state on inputs + $inputs.each(this._toggleState('checked', flag)); + + // give the first input focus + $inputs.eq(0).focus(); + + // update button text + this.update(); + + // gather an array of the values that actually changed + var values = $inputs.map(function(){ + return this.value; + }).get(); + + // toggle state on original option tags + this.element + .find('option') + .each(function(){ + if( !this.disabled && $.inArray(this.value, values) > -1 ){ + self._toggleState('selected', flag).call( this ); + } + }); + + // trigger the change event on the select + if( $inputs.length ) { + this.element.trigger("change"); + } + }, + + _toggleDisabled: function( flag ){ + this.button + .attr({ 'disabled':flag, 'aria-disabled':flag })[ flag ? 'addClass' : 'removeClass' ]('ui-state-disabled'); + + var inputs = this.menu.find('input'); + var key = "ech-multiselect-disabled"; + + if(flag) { + // remember which elements this widget disabled (not pre-disabled) + // elements, so that they can be restored if the widget is re-enabled. + inputs = inputs.filter(':enabled') + .data(key, true) + } else { + inputs = inputs.filter(function() { + return $.data(this, key) === true; + }).removeData(key); + } + + inputs + .attr({ 'disabled':flag, 'arial-disabled':flag }) + .parent()[ flag ? 'addClass' : 'removeClass' ]('ui-state-disabled'); + + this.element + .attr({ 'disabled':flag, 'aria-disabled':flag }); + }, + + // open the menu + open: function( e ){ + var self = this, + button = this.button, + menu = this.menu, + speed = this.speed, + o = this.options, + args = []; + + // bail if the multiselectopen event returns false, this widget is disabled, or is already open + if( this._trigger('beforeopen') === false || button.hasClass('ui-state-disabled') || this._isOpen ){ + return; + } + + var $container = menu.find('ul').last(), + effect = o.show, + pos = button.offset(); + + // figure out opening effects/speeds + if( $.isArray(o.show) ){ + effect = o.show[0]; + speed = o.show[1] || self.speed; + } + + // if there's an effect, assume jQuery UI is in use + // build the arguments to pass to show() + if( effect ) { + args = [ effect, speed ]; + } + + // set the scroll of the checkbox container + $container.scrollTop(0).height(o.height); + + // position and show menu + if( $.ui.position && !$.isEmptyObject(o.position) ){ + o.position.of = o.position.of || button; + + menu + .show() + .position( o.position ) + .hide(); + + // if position utility is not available... + } else { + menu.css({ + top: pos.top + button.outerHeight(), + 'inset-inline-start': pos.left + }); + } + + // show the menu, maybe with a speed/effect combo + $.fn.show.apply(menu, args); + + // select the first option + // triggering both mouseover and mouseover because 1.4.2+ has a bug where triggering mouseover + // will actually trigger mouseenter. the mouseenter trigger is there for when it's eventually fixed + this.labels.eq(0).trigger('mouseover').trigger('mouseenter').find('input').trigger('focus'); + + button.addClass('ui-state-active'); + this._isOpen = true; + this._trigger('open'); + }, + + // close the menu + close: function(){ + if(this._trigger('beforeclose') === false){ + return; + } + + var o = this.options, + effect = o.hide, + speed = this.speed, + args = []; + + // figure out opening effects/speeds + if( $.isArray(o.hide) ){ + effect = o.hide[0]; + speed = o.hide[1] || this.speed; + } + + if( effect ) { + args = [ effect, speed ]; + } + + $.fn.hide.apply(this.menu, args); + this.button.removeClass('ui-state-active').trigger('blur').trigger('mouseleave'); + this._isOpen = false; + this._trigger('close'); + }, + + enable: function(){ + this._toggleDisabled(false); + }, + + disable: function(){ + this._toggleDisabled(true); + }, + + checkAll: function( e ){ + this._toggleChecked(true); + this._trigger('checkAll'); + }, + + uncheckAll: function(){ + this._toggleChecked(false); + this._trigger('uncheckAll'); + }, + + getChecked: function(){ + return this.menu.find('input').filter(':checked'); + }, + + destroy: function(){ + // remove classes + data + $.Widget.prototype.destroy.call( this ); + + this.button.remove(); + this.menu.remove(); + this.element.show(); + + return this; + }, + + isOpen: function(){ + return this._isOpen; + }, + + widget: function(){ + return this.menu; + }, + + getButton: function(){ + return this.button; + }, + + // react to option changes after initialization + _setOption: function( key, value ){ + var menu = this.menu; + + switch(key){ + case 'header': + menu.find('div.ui-multiselect-header')[ value ? 'show' : 'hide' ](); + break; + case 'checkAllText': + menu.find('a.ui-multiselect-all span').eq(-1).text(value); + break; + case 'uncheckAllText': + menu.find('a.ui-multiselect-none span').eq(-1).text(value); + break; + case 'height': + menu.find('ul').last().height( parseInt(value,10) ); + break; + case 'minWidth': + this.options[ key ] = parseInt(value,10); + this._setButtonWidth(); + this._setMenuWidth(); + break; + case 'selectedText': + case 'selectedList': + case 'noneSelectedText': + this.options[key] = value; // these all needs to update immediately for the update() call + this.update(); + break; + case 'classes': + menu.add(this.button).removeClass(this.options.classes).addClass(value); + break; + case 'multiple': + menu.toggleClass('ui-multiselect-single', !value); + this.options.multiple = value; + this.element[0].multiple = value; + this.refresh(); + } + + $.Widget.prototype._setOption.apply( this, arguments ); + } +}); + +})(jQuery); diff --git a/apps/user_ldap/js/wizard/configModel.js b/apps/user_ldap/js/wizard/configModel.js index d99392660c8..85c87e2ef15 100644 --- a/apps/user_ldap/js/wizard/configModel.js +++ b/apps/user_ldap/js/wizard/configModel.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/controller.js b/apps/user_ldap/js/wizard/controller.js index 7c1f0d5d818..0bfa0fb7ffd 100644 --- a/apps/user_ldap/js/wizard/controller.js +++ b/apps/user_ldap/js/wizard/controller.js @@ -1,7 +1,6 @@ /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/view.js b/apps/user_ldap/js/wizard/view.js index 1a89eba3515..ba77d287141 100644 --- a/apps/user_ldap/js/wizard/view.js +++ b/apps/user_ldap/js/wizard/view.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -40,7 +40,7 @@ OCA = OCA || {}; }, /** - * applies click events to the forward and backword buttons + * applies click events to the forward and backward buttons */ initControls: function() { var view = this; @@ -86,7 +86,8 @@ OCA = OCA || {}; var agent = view.configModel.configuration.ldap_dn; var pwd = view.configModel.configuration.ldap_agent_password; - if((host && port && base) && ((!agent && !pwd) || (agent && pwd))) { + if(((host && port && base) || (host && base && host.indexOf('ldapi://') > -1 )) + && ((!agent && !pwd) || (agent && pwd))) { view.enableTabs(); } else { view.disableTabs(); @@ -107,7 +108,8 @@ OCA = OCA || {}; var userFilter = this.configModel.configuration.ldap_userlist_filter; var loginFilter = this.configModel.configuration.ldap_login_filter; - if(host && port && base && userFilter && loginFilter) { + if((host && port && base && userFilter && loginFilter) || + (host && base && host.indexOf('ldapi://') > -1 && userFilter && loginFilter)) { this.configModel.requestConfigurationTest(); } else { this._updateStatusIndicator(this.STATUS_INCOMPLETE); @@ -354,7 +356,6 @@ OCA = OCA || {}; this.$settings.tabs({}); $('#ldapSettings button:not(.icon-default-style):not(.ui-multiselect)').button(); $('#ldapSettings').tabs({ beforeActivate: this.onTabChange }); - $('#ldapSettings :input').tooltip({placement: "right", container: "body", trigger: "hover"}); this.initControls(); this.disableTabs(); diff --git a/apps/user_ldap/js/wizard/wizard.js b/apps/user_ldap/js/wizard/wizard.js index 39ab2e13ef8..b8a3d74b881 100644 --- a/apps/user_ldap/js/wizard/wizard.js +++ b/apps/user_ldap/js/wizard/wizard.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorAvailableAttributes.js b/apps/user_ldap/js/wizard/wizardDetectorAvailableAttributes.js index fd43b032ad5..4fae1ef5e99 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorAvailableAttributes.js +++ b/apps/user_ldap/js/wizard/wizardDetectorAvailableAttributes.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorBaseDN.js b/apps/user_ldap/js/wizard/wizardDetectorBaseDN.js index f81d342b692..3d3bba4f821 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorBaseDN.js +++ b/apps/user_ldap/js/wizard/wizardDetectorBaseDN.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorClearGroupMappings.js b/apps/user_ldap/js/wizard/wizardDetectorClearGroupMappings.js index c6ef0a9cab1..740fc3a3f6b 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorClearGroupMappings.js +++ b/apps/user_ldap/js/wizard/wizardDetectorClearGroupMappings.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorClearUserMappings.js b/apps/user_ldap/js/wizard/wizardDetectorClearUserMappings.js index 0e4811b39ea..1032682d926 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorClearUserMappings.js +++ b/apps/user_ldap/js/wizard/wizardDetectorClearUserMappings.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorEmailAttribute.js b/apps/user_ldap/js/wizard/wizardDetectorEmailAttribute.js index 5f177734681..007a9cc8079 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorEmailAttribute.js +++ b/apps/user_ldap/js/wizard/wizardDetectorEmailAttribute.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorFeatureAbstract.js b/apps/user_ldap/js/wizard/wizardDetectorFeatureAbstract.js index e025d8d6242..3d43cd369d5 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorFeatureAbstract.js +++ b/apps/user_ldap/js/wizard/wizardDetectorFeatureAbstract.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorFilterGroup.js b/apps/user_ldap/js/wizard/wizardDetectorFilterGroup.js index f56550a919e..507f7490731 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorFilterGroup.js +++ b/apps/user_ldap/js/wizard/wizardDetectorFilterGroup.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorFilterLogin.js b/apps/user_ldap/js/wizard/wizardDetectorFilterLogin.js index 7012847193b..827886c840c 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorFilterLogin.js +++ b/apps/user_ldap/js/wizard/wizardDetectorFilterLogin.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorFilterUser.js b/apps/user_ldap/js/wizard/wizardDetectorFilterUser.js index 3cd2935bd87..11e990a36e0 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorFilterUser.js +++ b/apps/user_ldap/js/wizard/wizardDetectorFilterUser.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorGeneric.js b/apps/user_ldap/js/wizard/wizardDetectorGeneric.js index 2126828c197..ab1c0c96d99 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorGeneric.js +++ b/apps/user_ldap/js/wizard/wizardDetectorGeneric.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorGroupCount.js b/apps/user_ldap/js/wizard/wizardDetectorGroupCount.js index d2f3dd978c5..9e29cf093ea 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorGroupCount.js +++ b/apps/user_ldap/js/wizard/wizardDetectorGroupCount.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorGroupObjectClasses.js b/apps/user_ldap/js/wizard/wizardDetectorGroupObjectClasses.js index 6d6048b7986..cbfb1f91a41 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorGroupObjectClasses.js +++ b/apps/user_ldap/js/wizard/wizardDetectorGroupObjectClasses.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorGroupsForGroups.js b/apps/user_ldap/js/wizard/wizardDetectorGroupsForGroups.js index fbb3f02e10a..2e898f5317e 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorGroupsForGroups.js +++ b/apps/user_ldap/js/wizard/wizardDetectorGroupsForGroups.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorGroupsForUsers.js b/apps/user_ldap/js/wizard/wizardDetectorGroupsForUsers.js index fe67854c794..de8407a0edd 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorGroupsForUsers.js +++ b/apps/user_ldap/js/wizard/wizardDetectorGroupsForUsers.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorPort.js b/apps/user_ldap/js/wizard/wizardDetectorPort.js index 50b1a1b4746..10055cd1cdd 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorPort.js +++ b/apps/user_ldap/js/wizard/wizardDetectorPort.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorQueue.js b/apps/user_ldap/js/wizard/wizardDetectorQueue.js index b6fa644558e..c00064f5c45 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorQueue.js +++ b/apps/user_ldap/js/wizard/wizardDetectorQueue.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorSimpleRequestAbstract.js b/apps/user_ldap/js/wizard/wizardDetectorSimpleRequestAbstract.js index 8a1da617aa0..80d14f8466c 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorSimpleRequestAbstract.js +++ b/apps/user_ldap/js/wizard/wizardDetectorSimpleRequestAbstract.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorTestAbstract.js b/apps/user_ldap/js/wizard/wizardDetectorTestAbstract.js index e371dbf0f63..929ea0e84e8 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorTestAbstract.js +++ b/apps/user_ldap/js/wizard/wizardDetectorTestAbstract.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorTestBaseDN.js b/apps/user_ldap/js/wizard/wizardDetectorTestBaseDN.js index 52848819bd8..de01726e1c1 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorTestBaseDN.js +++ b/apps/user_ldap/js/wizard/wizardDetectorTestBaseDN.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorTestConfiguration.js b/apps/user_ldap/js/wizard/wizardDetectorTestConfiguration.js index aed99539384..5049c101f09 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorTestConfiguration.js +++ b/apps/user_ldap/js/wizard/wizardDetectorTestConfiguration.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorTestLoginName.js b/apps/user_ldap/js/wizard/wizardDetectorTestLoginName.js index 260df5a0fe0..5e0319586b3 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorTestLoginName.js +++ b/apps/user_ldap/js/wizard/wizardDetectorTestLoginName.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorUserCount.js b/apps/user_ldap/js/wizard/wizardDetectorUserCount.js index bcff2cf3b10..144c64d24be 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorUserCount.js +++ b/apps/user_ldap/js/wizard/wizardDetectorUserCount.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorUserDisplayNameAttribute.js b/apps/user_ldap/js/wizard/wizardDetectorUserDisplayNameAttribute.js index ae734480c1c..64e5bb50371 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorUserDisplayNameAttribute.js +++ b/apps/user_ldap/js/wizard/wizardDetectorUserDisplayNameAttribute.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorUserGroupAssociation.js b/apps/user_ldap/js/wizard/wizardDetectorUserGroupAssociation.js index a20bdd9ac9b..a0051532388 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorUserGroupAssociation.js +++ b/apps/user_ldap/js/wizard/wizardDetectorUserGroupAssociation.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardDetectorUserObjectClasses.js b/apps/user_ldap/js/wizard/wizardDetectorUserObjectClasses.js index 0fa324a0809..13e034e353e 100644 --- a/apps/user_ldap/js/wizard/wizardDetectorUserObjectClasses.js +++ b/apps/user_ldap/js/wizard/wizardDetectorUserObjectClasses.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardFilterOnType.js b/apps/user_ldap/js/wizard/wizardFilterOnType.js index f792b1a99a2..80232ffd91b 100644 --- a/apps/user_ldap/js/wizard/wizardFilterOnType.js +++ b/apps/user_ldap/js/wizard/wizardFilterOnType.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardFilterOnTypeFactory.js b/apps/user_ldap/js/wizard/wizardFilterOnTypeFactory.js index bd6511dc8b0..de207574539 100644 --- a/apps/user_ldap/js/wizard/wizardFilterOnTypeFactory.js +++ b/apps/user_ldap/js/wizard/wizardFilterOnTypeFactory.js @@ -1,7 +1,6 @@ /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardObject.js b/apps/user_ldap/js/wizard/wizardObject.js index a90f1533a26..9ae574d4ffd 100644 --- a/apps/user_ldap/js/wizard/wizardObject.js +++ b/apps/user_ldap/js/wizard/wizardObject.js @@ -1,8 +1,6 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js index 8312ad909ec..f5cfd4a14fb 100644 --- a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardTabAdvanced.js b/apps/user_ldap/js/wizard/wizardTabAdvanced.js index 1545147f64c..8f0d0aa7973 100644 --- a/apps/user_ldap/js/wizard/wizardTabAdvanced.js +++ b/apps/user_ldap/js/wizard/wizardTabAdvanced.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -17,8 +16,8 @@ OCA = OCA || {}; /** * initializes the instance. Always call it after initialization. * - * @param tabIndex - * @param tabID + * @param {any} tabIndex - + * @param {any} tabID - */ init: function (tabIndex, tabID) { this._super(tabIndex, tabID); @@ -67,6 +66,10 @@ OCA = OCA || {}; $element: $('#ldap_attributes_for_user_search'), setMethod: 'setSearchAttributesUsers' }, + ldap_mark_remnants_as_disabled: { + $element: $('#ldap_mark_remnants_as_disabled'), + setMethod: 'setMarkRemnantsAsDisabled' + }, ldap_group_display_name: { $element: $('#ldap_group_display_name'), setMethod: 'setGroupDisplayName' @@ -125,6 +128,48 @@ OCA = OCA || {}; $element: $('#ldap_ext_storage_home_attribute'), setMethod: 'setExternalStorageHomeAttribute' }, + + //User Profile Attributes + ldap_attr_phone: { + $element: $('#ldap_attr_phone'), + setMethod: 'setPhoneAttribute' + }, + ldap_attr_website: { + $element: $('#ldap_attr_website'), + setMethod: 'setWebsiteAttribute' + }, + ldap_attr_address: { + $element: $('#ldap_attr_address'), + setMethod: 'setAddressAttribute' + }, + ldap_attr_twitter: { + $element: $('#ldap_attr_twitter'), + setMethod: 'setTwitterAttribute' + }, + ldap_attr_fediverse: { + $element: $('#ldap_attr_fediverse'), + setMethod: 'setFediverseAttribute' + }, + ldap_attr_organisation: { + $element: $('#ldap_attr_organisation'), + setMethod: 'setOrganisationAttribute' + }, + ldap_attr_role: { + $element: $('#ldap_attr_role'), + setMethod: 'setRoleAttribute' + }, + ldap_attr_headline: { + $element: $('#ldap_attr_headline'), + setMethod: 'setHeadlineAttribute' + }, + ldap_attr_biography: { + $element: $('#ldap_attr_biography'), + setMethod: 'setBiographyAttribute' + }, + ldap_attr_birthdate: { + $element: $('#ldap_attr_birthdate'), + setMethod: 'setBirthdateAttribute' + }, }; this.setManagedItems(items); }, @@ -238,6 +283,15 @@ OCA = OCA || {}; }, /** + * enables or disables marking remnants as disabled + * + * @param {string} markRemnantsAsDisabled contains an int + */ + setMarkRemnantsAsDisabled: function(markRemnantsAsDisabled) { + this.setElementValue(this.managedItems.ldap_mark_remnants_as_disabled.$element, markRemnantsAsDisabled); + }, + + /** * sets the display name attribute for groups * * @param {string} attribute @@ -281,7 +335,7 @@ OCA = OCA || {}; setDynamicGroupMemberURL: function(attribute) { this.setElementValue(this.managedItems.ldap_dynamic_group_member_url.$element, attribute); }, - + /** * enabled or disables the use of nested groups (groups in groups in * groups…) @@ -367,6 +421,96 @@ OCA = OCA || {}; }, /** + * sets the attribute for the Nextcloud user profile phone Number + * + * @param {string} attribute + */ + setPhoneAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_phone.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile website + * + * @param {string} attribute + */ + setWebsiteAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_website.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile postal address + * + * @param {string} attribute + */ + setAddressAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_address.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile twitter + * + * @param {string} attribute + */ + setTwitterAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_twitter.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile fediverse + * + * @param {string} attribute + */ + setFediverseAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_fediverse.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile organisation + * + * @param {string} attribute + */ + setOrganisationAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_organisation.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile role + * + * @param {string} attribute + */ + setRoleAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_role.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile headline + * + * @param {string} attribute + */ + setHeadlineAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_headline.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile biography + * + * @param {string} attribute + */ + setBiographyAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_biography.$element, attribute); + }, + + /** + * sets the attribute for the Nextcloud user profile birthday + * + * @param {string} attribute + */ + setBirthdateAttribute: function(attribute) { + this.setElementValue(this.managedItems.ldap_attr_birthdate.$element, attribute); + }, + + /** * deals with the result of the Test Connection test * * @param {WizardTabAdvanced} view diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js index 24e76bd84c7..2a04d773058 100644 --- a/apps/user_ldap/js/wizard/wizardTabElementary.js +++ b/apps/user_ldap/js/wizard/wizardTabElementary.js @@ -1,8 +1,8 @@ /** - * 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. + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -22,8 +22,8 @@ OCA = OCA || {}; /** * initializes the instance. Always call it after initialization. * - * @param tabIndex - * @param tabID + * @param {any} tabIndex - + * @param {any} tabID - */ init: function (tabIndex, tabID) { tabIndex = 0; @@ -245,8 +245,8 @@ OCA = OCA || {}; * updates the configuration chooser upon the deletion of a * configuration and, if necessary, loads an existing one. * - * @param view - * @param result + * @param {any} view - + * @param {any} result - */ onDeleteConfiguration: function(view, result) { if(result.isSuccess === true) { diff --git a/apps/user_ldap/js/wizard/wizardTabExpert.js b/apps/user_ldap/js/wizard/wizardTabExpert.js index 634d30212ac..4848ced40fe 100644 --- a/apps/user_ldap/js/wizard/wizardTabExpert.js +++ b/apps/user_ldap/js/wizard/wizardTabExpert.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -17,8 +16,8 @@ OCA = OCA || {}; /** * initializes the instance. Always call it after initialization. * - * @param tabIndex - * @param tabID + * @param {any} tabIndex - + * @param {any} tabID - */ init: function (tabIndex, tabID) { this._super(tabIndex, tabID); diff --git a/apps/user_ldap/js/wizard/wizardTabGeneric.js b/apps/user_ldap/js/wizard/wizardTabGeneric.js index edb099f99cd..3496dee5009 100644 --- a/apps/user_ldap/js/wizard/wizardTabGeneric.js +++ b/apps/user_ldap/js/wizard/wizardTabGeneric.js @@ -1,8 +1,7 @@ - /** - * 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. + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -29,7 +28,7 @@ OCA = OCA || {}; bjQuiButtonClass: 'ui-button', /** - * @property {bool} - indicates whether a filter mode toggle operation + * @property {boolean} - indicates whether a filter mode toggle operation * is still in progress */ isToggling: false, @@ -147,8 +146,8 @@ OCA = OCA || {}; /** * displays server error messages. * - * @param view - * @param payload + * @param {any} view - + * @param {any} payload - */ onServerError: function(view, payload) { if ( !_.isUndefined(view.managedItems[payload.relatedKey])) { @@ -456,7 +455,7 @@ OCA = OCA || {}; * sets the filter mode initially and resets the "isToggling" marker. * This method is called after a save operation against the mode key. * - * @param mode + * @param {any} mode - */ setFilterModeOnce: function(mode) { this.isToggling = false; diff --git a/apps/user_ldap/js/wizard/wizardTabGroupFilter.js b/apps/user_ldap/js/wizard/wizardTabGroupFilter.js index 3fbff9de9a0..850387b4589 100644 --- a/apps/user_ldap/js/wizard/wizardTabGroupFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabGroupFilter.js @@ -1,7 +1,6 @@ /** - * 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. + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; diff --git a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js index 0eef632d85d..d907957ac95 100644 --- a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -16,8 +16,8 @@ OCA = OCA || {}; /** * initializes the instance. Always call it after initialization. * - * @param tabIndex - * @param tabID + * @param {any} tabIndex - + * @param {any} tabID - */ init: function (tabIndex, tabID) { this._super(tabIndex, tabID); @@ -134,7 +134,7 @@ OCA = OCA || {}; /** * presents the result of the login name test * - * @param result + * @param {any} result - */ handleLoginTestResult: function(result) { var message; @@ -159,9 +159,9 @@ OCA = OCA || {}; if(message === 'Bad search filter') { message = t('user_ldap', 'The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise.'); } else if(message === 'connection error') { - message = t('user_ldap', 'A connection error to LDAP / AD occurred, please check host, port and credentials.'); + message = t('user_ldap', 'A connection error to LDAP/AD occurred. Please check host, port and credentials.'); } else if(message === 'missing placeholder') { - message = t('user_ldap', 'The "%uid" placeholder is missing. It will be replaced with the login name when querying LDAP / AD.'); + message = t('user_ldap', 'The "%uid" placeholder is missing. It will be replaced with the login name when querying LDAP/AD.'); } } OC.Notification.showTemporary(message, {isHTML: isHtml}); diff --git a/apps/user_ldap/js/wizard/wizardTabUserFilter.js b/apps/user_ldap/js/wizard/wizardTabUserFilter.js index da7cb77568e..00aa62f0cd7 100644 --- a/apps/user_ldap/js/wizard/wizardTabUserFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabUserFilter.js @@ -1,7 +1,7 @@ /** - * 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. + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later */ OCA = OCA || {}; @@ -131,7 +131,7 @@ OCA = OCA || {}; if( key === 'ldap_userfilter_groups' && message === 'memberOf is not supported by the server' ) { - message = t('user_ldap', 'The group box was disabled, because the LDAP / AD server does not support memberOf.'); + message = t('user_ldap', 'The group box was disabled, because the LDAP/AD server does not support memberOf.'); } return message; } |