diff --git a/appinfo/app.php b/appinfo/app.php --- a/appinfo/app.php +++ b/appinfo/app.php @@ -1,32 +1,31 @@ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library 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 library. If not, see . * */ require_once('apps/user_sql/user_sql.php'); \OCP\App::registerAdmin('user_sql','settings'); $backend = new \OCA\user_sql\OC_USER_SQL; // register user backend -OC_User::registerBackend($backend); -OC_User::useBackend($backend); +\OC_User::useBackend($backend); diff --git a/appinfo/info.xml b/appinfo/info.xml --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -1,16 +1,18 @@ user_sql SQL user backend Authenticate Users by SQL AGPL Andreas Boehler <dev (at) aboehler (dot) at > - 2.1 - 8.1 + 2.2 false user_sql + + + diff --git a/js/settings.js b/js/settings.js --- a/js/settings.js +++ b/js/settings.js @@ -1,314 +1,314 @@ // settings.js of user_sql // declare namespace var user_sql = user_sql || { }; /** * init admin settings view */ user_sql.adminSettingsUI = function() { - if($('#sql').length > 0) + if($('#sqlDiv').length > 0) { // enable tabs on settings page - $('#sql').tabs(); + $('#sqlDiv').tabs(); // Attach auto-completion to all column fields $('#col_username, #col_password, #col_displayname, #col_active, #col_email, #col_gethome').autocomplete({ source: function(request, response) { var post = $('#sqlForm').serializeArray(); var domain = $('#sql_domain_chooser option:selected').val(); post.push({ name: 'function', value: 'getColumnAutocomplete' }); post.push({ name: 'domain', value: domain }); post.push({ name: 'request', value: request.term }); // Ajax foobar $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json'); }, minLength: 0, open: function() { $(this).attr('state', 'open'); }, close: function() { $(this).attr('state', 'closed'); } }).focus(function() { if($(this).attr('state') != 'open') { $(this).autocomplete("search"); } }); // Attach auto-completion to all table fields $('#sql_table').autocomplete({ source: function(request, response) { var post = $('#sqlForm').serializeArray(); var domain = $('#sql_domain_chooser option:selected').val(); post.push({ name: 'function', value: 'getTableAutocomplete' }); post.push({ name: 'domain', value: domain }); post.push({ name: 'request', value: request.term }); // Ajax foobar $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json'); }, minLength: 0, open: function() { $(this).attr('state', 'open'); }, close: function() { $(this).attr('state', 'closed'); } }).focus(function() { if($(this).attr('state') != 'open') { $(this).autocomplete("search"); } }); // Verify the SQL database settings $('#sqlVerify').click(function(event) { event.preventDefault(); var post = $('#sqlForm').serializeArray(); var domain = $('#sql_domain_chooser option:selected').val(); post.push({ name: 'function', value: 'verifySettings' }); post.push({ name: 'domain', value: domain }); $('#sql_verify_message').show(); $('#sql_success_message').hide(); $('#sql_error_message').hide(); $('#sql_update_message').hide(); // Ajax foobar $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function(data) { $('#sql_verify_message').hide(); if(data.status == 'success') { $('#sql_success_message').html(data.data.message); $('#sql_success_message').show(); window.setTimeout(function() { $('#sql_success_message').hide(); }, 10000); } else { $('#sql_error_message').html(data.data.message); $('#sql_error_message').show(); } }, 'json'); return false; }); // Save the settings for a domain $('#sqlSubmit').click(function(event) { event.preventDefault(); var post = $('#sqlForm').serializeArray(); var domain = $('#sql_domain_chooser option:selected').val(); post.push({ name: 'function', value: 'saveSettings' }); post.push({ name: 'domain', value: domain }); $('#sql_update_message').show(); $('#sql_success_message').hide(); $('#sql_verify_message').hide(); $('#sql_error_message').hide(); // Ajax foobar $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function(data) { $('#sql_update_message').hide(); if(data.status == 'success') { $('#sql_success_message').html(data.data.message); $('#sql_success_message').show(); window.setTimeout(function() { $('#sql_success_message').hide(); }, 10000); } else { $('#sql_error_message').html(data.data.message); $('#sql_error_message').show(); } }, 'json'); return false; }); // Attach event handler to the domain chooser $('#sql_domain_chooser').change(function() { user_sql.loadDomainSettings($('#sql_domain_chooser option:selected').val()); }); $('#set_gethome_mode').change(function() { user_sql.setGethomeMode(); }); $('#set_enable_gethome').change(function() { user_sql.setGethomeMode(); }); } }; user_sql.setGethomeMode = function() { var enabled = $('#set_enable_gethome').prop('checked'); if(enabled) { $('#set_gethome_mode').prop('disabled', false); var val = $('#set_gethome_mode option:selected').val(); if(val === 'query') { $('#set_gethome').prop('disabled', true); $('#col_gethome').prop('disabled', false); } else if(val === 'static') { $('#set_gethome').prop('disabled', false); $('#col_gethome').prop('disabled', true); } else { $('#set_gethome').prop('disabled', true); $('#col_gethome').prop('disabled', true); } } else { $('#set_gethome_mode').prop('disabled', true); $('#set_gethome').prop('disabled', true); $('#col_gethome').prop('disabled', true); } }; /** * Load the settings for the selected domain * @param string domain The domain to load */ user_sql.loadDomainSettings = function(domain) { $('#sql_success_message').hide(); $('#sql_error_message').hide(); $('#sql_verify_message').hide(); $('#sql_loading_message').show(); var post = [ { name: 'appname', value: 'user_sql' }, { name: 'function', value: 'loadSettingsForDomain' }, { name: 'domain', value: domain } ]; $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function(data) { $('#sql_loading_message').hide(); if(data.status == 'success') { for(key in data.settings) { if(key == 'set_strip_domain') { if(data.settings[key] == 'true') $('#' + key).prop('checked', true); else $('#' + key).prop('checked', false); } else if(key == 'set_allow_pwchange') { if(data.settings[key] == 'true') $('#' + key).prop('checked', true); else $('#' + key).prop('checked', false); } else if(key == 'set_active_invert') { if(data.settings[key] == 'true') $('#' + key).prop('checked', true); else $('#' + key).prop('checked', false); } else if(key == 'set_enable_gethome') { if(data.settings[key] == 'true') $('#' + key).prop('checked', true); else $('#' + key).prop('checked', false); } else { $('#' + key).val(data.settings[key]); } } } else { $('#sql_error_message').html(data.data.message); $('#sql_error_message').show(); } user_sql.setGethomeMode(); }, 'json' ); }; // Run our JS if the SQL settings are present $(document).ready(function() { - if($('#sql')) + if($('#sqlDiv')) { user_sql.adminSettingsUI(); user_sql.loadDomainSettings($('#sql_domain_chooser option:selected').val()); user_sql.setGethomeMode(); } }); diff --git a/templates/settings.php b/templates/settings.php --- a/templates/settings.php +++ b/templates/settings.php @@ -1,168 +1,168 @@ = 7 ? 'section' : 'personalblock'; ?>
-

t('SQL')); ?>

+

t('SQL User Backend')); ?>

-
+

'MySQL', 'pgsql' => 'PostgreSQL'); ?>

>
t('Allow changing passwords. Imposes a security risk as password salts are not recreated')); ?>

'MD5', 'md5crypt' => 'MD5 Crypt', 'cleartext' => 'Cleartext', 'mysql_encrypt' => 'mySQL ENCRYPT()', 'system' => 'System (crypt)', 'mysql_password' => 'mySQL PASSWORD()', 'joomla' => 'Joomla MD5 Encryption', 'joomla2' => 'Joomla > 2.5.18 phpass', 'ssha256' => 'Salted SSHA256', 'redmine' => 'Redmine'); ?>

/>
t("Invert the logic of the active column (for blocked users in the SQL DB)")); ?>

'No Synchronisation', 'initial' => 'Synchronise only once', 'forceoc' => 'ownCloud always wins', 'forcesql' => 'SQL always wins'); ?>


t('Append this string, e.g. a domain name, to each user name. The @-sign is automatically inserted.')); ?>

/>
t("Strip Domain Part including @-sign from Username when logging in and retrieving username lists")); ?>

/>

'SQL Column', 'static' => 'Static (with Variables)'); ?>


t('You can use the placeholders %%u to specify the user ID (before appending the default domain), %%ud to specify the user ID (after appending the default domain) and %%d to specify the default domain')); ?>

t('Saving...')); ?>
t('Loading...')); ?>
t('Verifying...')); ?>