Page MenuHomePhabricator

No OneTemporary

diff --git a/ajax/settings.php b/ajax/settings.php
new file mode 100644
--- /dev/null
+++ b/ajax/settings.php
@@ -0,0 +1,39 @@
+<?php
+
+// Init owncloud
+
+// Check if we are a user
+OCP\User::checkAdminUser();
+OCP\JSON::checkAppEnabled('user_sql');
+
+// CSRF checks
+OCP\JSON::callCheck();
+
+$l = new OC_L10N('use_sql');
+
+$params = array('sql_host', 'sql_user', 'sql_database', 'sql_password',
+ 'sql_table', 'sql_column_username', 'sql_column_password',
+ 'sql_type', 'sql_column_active', 'strip_domain', 'default_domain',
+ 'crypt_type', 'sql_column_displayname');
+
+if (isset($_POST['appname']) && $_POST['appname'] == "user_sql") {
+ foreach ($params as $param) {
+ if (isset($_POST[$param])) {
+ if ($param === 'strip_domain') {
+ OCP\Config::setAppValue('user_sql', 'strip_domain', true);
+ } else {
+ OCP\Config::setAppValue('user_sql', $param, $_POST[$param]);
+ }
+ } else {
+ if ($param === 'strip_domain') {
+ OCP\Config::setAppValue('user_sql', 'strip_domain', false);
+ }
+ }
+ }
+} else {
+ OC_JSON::error(array("data" => array( "message" => $l->t("Not submitted for us.") )));
+ return false;
+}
+
+OCP\JSON::success(array('data' => array( 'message' => $l->t('Application settings successfully stored.') )));
+return true;
diff --git a/css/settings.css b/css/settings.css
new file mode 100644
--- /dev/null
+++ b/css/settings.css
@@ -0,0 +1,14 @@
+.statusmessage {
+ background-color: #DDDDFF;
+}
+.errormessage {
+ background-color: #FFDDDD;
+}
+.successmessage {
+ background-color: #DDFFDD;
+}
+.statusmessage,.errormessage,.successmessage{
+ display:none;
+ padding: 1;
+}
+
diff --git a/js/settings.js b/js/settings.js
--- a/js/settings.js
+++ b/js/settings.js
@@ -1,1 +1,45 @@
-//
+// declare namespace
+var user_sql = user_sql || {};
+
+/**
+ * init admin settings view
+ */
+user_sql.adminSettingsUI = function() {
+
+ if ($('#sql').length > 0) {
+ // enable tabs on settings page
+ $('#sql').tabs();
+
+ $('#sqlSubmit').click(function(event) {
+ event.preventDefault();
+
+ var self = $(this);
+ var post = $('#sqlForm').serialize();
+ $('#sql_update_message').show();
+ $('#sql_success_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;
+ });
+ }
+}
+
+$(document).ready(function() {
+ if ($('#sql')) {
+ user_sql.adminSettingsUI();
+ }
+});
+
diff --git a/settings.php b/settings.php
--- a/settings.php
+++ b/settings.php
@@ -1,64 +1,75 @@
<?php
/**
* ownCloud - user_sql
*
* @author Andreas Böhler
* @copyright 2012 Andreas Böhler <andreas (at) aboehler (dot) at>
*
* 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 <http://www.gnu.org/licenses/>.
*
*/
-$params = array('sql_host', 'sql_user', 'sql_database', 'sql_password', 'sql_table', 'sql_column_username', 'sql_column_password', 'sql_type', 'sql_column_active', 'strip_domain', 'default_domain', 'crypt_type', 'sql_column_displayname');
+$params = array('sql_host', 'sql_user', 'sql_database', 'sql_password',
+ 'sql_table', 'sql_column_username', 'sql_column_password',
+ 'sql_type', 'sql_column_active', 'strip_domain', 'default_domain',
+ 'crypt_type', 'sql_column_displayname');
-OCP\Util::addscript('user_sql', 'settings');
+OCP\Util::addStyle('user_sql', 'settings');
+OCP\Util::addScript('user_sql', 'settings');
OCP\User::checkAdminUser();
+/*
if ($_POST) {
OCP\JSON::callCheck();
foreach($params as $param){
if(isset($_POST[$param]))
{
OCP\Config::setAppValue('user_sql', $param, $_POST[$param]);
}
elseif($param == 'strip_domain')
{
OCP\Config::setAppValue('user_sql', $param, 0);
}
}
}
+*/
// fill template
$tmpl = new OCP\Template( 'user_sql', 'settings');
foreach($params as $param){
$value = htmlentities(OCP\Config::getAppValue('user_sql', $param,''));
$tmpl->assign($param, $value);
}
// settings with default values
$tmpl->assign( 'sql_host', OCP\Config::getAppValue('user_sql', 'sql_host', OC_USER_BACKEND_SQL_DEFAULT_HOST));
$tmpl->assign( 'sql_user', OCP\Config::getAppValue('user_sql', 'sql_user', OC_USER_BACKEND_SQL_DEFAULT_USER));
$tmpl->assign( 'sql_database', OCP\Config::getAppValue( 'user_sql', 'sql_database', OC_USER_BACKEND_SQL_DEFAULT_DB));
$tmpl->assign( 'sql_password', OCP\Config::getAppValue( 'user_sql', 'sql_password', OC_USER_BACKEND_SQL_DEFAULT_PASSWORD));
$tmpl->assign( 'sql_table', OCP\Config::getAppValue( 'user_sql', 'sql_table', OC_USER_BACKEND_SQL_DEFAULT_TABLE));
$tmpl->assign( 'sql_column_password', OCP\Config::getAppValue( 'user_sql', 'sql_column_password', OC_USER_BACKEND_SQL_DEFAULT_PW_COLUMN));
$tmpl->assign( 'sql_column_username', OCP\Config::getAppValue( 'user_sql', 'sql_column_username', OC_USER_BACKEND_SQL_DEFAULT_USER_COLUMN));
$tmpl->assign( 'sql_type', OCP\Config::getAppValue( 'user_sql', 'sql_type', OC_USER_BACKEND_SQL_DEFAULT_DRIVER));
$tmpl->assign( 'sql_column_active', OCP\Config::getAppValue( 'user_sql', 'sql_column_active', ''));
$tmpl->assign( 'strip_domain', OCP\Config::getAppValue( 'user_sql', 'strip_domain', 0));
$tmpl->assign( 'default_domain', OCP\Config::getAppValue( 'user_sql', 'default_domain', ''));
$tmpl->assign( 'crypt_type', OCP\Config::getAppValue( 'user_sql', 'crypt_type', 'mysql_encrypt'));
$tmpl->assign( 'sql_column_displayname', OCP\Config::getAppValue( 'user_sql', 'sql_column_displayname', ''));
+// workaround to detect OC version
+$ocVersion = @reset(OCP\Util::getVersion());
+$tmpl->assign('ocVersion', $ocVersion);
+
+
return $tmpl->fetchPage();
diff --git a/templates/settings.php b/templates/settings.php
--- a/templates/settings.php
+++ b/templates/settings.php
@@ -1,47 +1,72 @@
-<form id="sql" action="#" method="post">
- <fieldset class="personalblock">
- <legend><?php echo $l->t('SQL'); ?></legend>
- <p><label for="sql_type"><?php echo $l->t('SQL Driver');?></label>
+<?php
+$ocVersion = $_['ocVersion'];
+$cfgClass = $ocVersion >= 7 ? 'section' : 'personalblock';
+
+?>
+
+
+<form id="sqlForm" action="#" method="post" class="<?php echo $cfgClass; ?>">
+
+ <div id="sql" class="<?php echo $cfgClass; ?>">
+ <legend><strong><?php echo $l->t('SQL'); ?></strong></legend>
+ <ul>
+ <li><a id="sqlBasicSettings" href="#sql-1"><?php echo $l -> t('Database Settings'); ?></a></li>
+ <li><a id="sqlAdvSettings" href="#sql-2"><?php echo $l->t('Advanced Settings'); ?></a></li>
+ </ul>
+
+ <fieldset id="sql-1">
+ <table>
+ <tr><td><label for="sql_type"><?php echo $l->t('SQL Driver');?></label></td>
<?php $db_driver = array('mysql' => 'MySQL', 'pgsql' => 'PostgreSQL');?>
- <select id="sql_type" name="sql_type">
+ <td><select id="sql_type" name="sql_type">
<?php
foreach ($db_driver as $driver => $name):
echo $_['sql_type'];
if($_['sql_type'] == $driver): ?>
<option selected="selected" value="<?php echo $driver; ?>"><?php echo $name; ?></option>
<?php else: ?>
<option value="<?php echo $driver; ?>"><?php echo $name; ?></option>
<?php endif;
endforeach; ?>
- </select>
- </p>
+ </select></td>
+ </tr>
- <p><label for="sql_host"><?php echo $l->t('Host');?></label><input type="text" id="sql_host" name="sql_host" value="<?php echo $_['sql_host']; ?>"></p>
- <p><label for="sql_user"><?php echo $l->t('Username');?></label><input type="text" id="sql_user" name="sql_user" value="<?php echo $_['sql_user']; ?>" /></p>
- <p><label for="sql_database"><?php echo $l->t('Database');?></label><input type="text" id="sql_database" name="sql_database" value="<?php echo $_['sql_database']; ?>" /></p>
- <p><label for="sql_password"><?php echo $l->t('Password');?></label><input type="password" id="sql_password" name="sql_password" value="<?php echo $_['sql_password']; ?>" /></p>
- <p><label for="sql_table"><?php echo $l->t('Table');?></label><input type="text" id="sql_table" name="sql_table" value="<?php echo $_['sql_table']; ?>" /></p>
- <p><label for="sql_column_username"><?php echo $l->t('Username Column');?></label><input type="text" id="sql_column_username" name="sql_column_username" value="<?php echo $_['sql_column_username']; ?>" /></p>
- <p><label for="sql_column_password"><?php echo $l->t('Password Column');?></label><input type="text" id="sql_column_password" name="sql_column_password" value="<?php echo $_['sql_column_password']; ?>" /></p>
- <p><label for="sql_column_displayname"><?php echo $l->t('Real Name Column');?></label><input type="text" id="sql_column_displayname" name="sql_column_displayname" value="<?php echo $_['sql_column_displayname']; ?>" /></p>
- <p><label for="crypt_type"><?php echo $l->t('Encryption Type');?></label>
+ <tr><td><label for="sql_host"><?php echo $l->t('Host');?></label></td><td><input type="text" id="sql_host" name="sql_host" value="<?php echo $_['sql_host']; ?>"></td></tr>
+ <tr><td><label for="sql_user"><?php echo $l->t('Username');?></label></td><td><input type="text" id="sql_user" name="sql_user" value="<?php echo $_['sql_user']; ?>" /></td></tr>
+ <tr><td><label for="sql_database"><?php echo $l->t('Database');?></label></td><td><input type="text" id="sql_database" name="sql_database" value="<?php echo $_['sql_database']; ?>" /></td></tr>
+ <tr><td><label for="sql_password"><?php echo $l->t('Password');?></label></td><td><input type="password" id="sql_password" name="sql_password" value="<?php echo $_['sql_password']; ?>" /></td></tr>
+ <tr><td><label for="sql_table"><?php echo $l->t('Table');?></label></td><td><input type="text" id="sql_table" name="sql_table" value="<?php echo $_['sql_table']; ?>" /></td></tr>
+ </table>
+ </fieldset>
+ <fieldset id="sql-2">
+ <table>
+ <tr><td><label for="sql_column_username"><?php echo $l->t('Username Column');?></label></td><td><input type="text" id="sql_column_username" name="sql_column_username" value="<?php echo $_['sql_column_username']; ?>" /></td></tr>
+ <tr><td><label for="sql_column_password"><?php echo $l->t('Password Column');?></label></td><td><input type="text" id="sql_column_password" name="sql_column_password" value="<?php echo $_['sql_column_password']; ?>" /></td></tr>
+ <tr><td><label for="sql_column_displayname"><?php echo $l->t('Real Name Column');?></label></td><td><input type="text" id="sql_column_displayname" name="sql_column_displayname" value="<?php echo $_['sql_column_displayname']; ?>" /></td></tr>
+ <tr><td><label for="crypt_type"><?php echo $l->t('Encryption Type');?></label></td>
<?php $crypt_types = array('md5' => 'MD5', 'md5crypt' => 'MD5 Crypt', 'cleartext' => 'Cleartext', 'mysql_encrypt' => 'mySQL ENCRYPT()', 'system' => 'System (crypt)', 'mysql_password' => 'mySQL PASSWORD()', 'joomla' => 'Joomla MD5 Encryption');?>
- <select id="crypt_type" name="crypt_type">
+ <td><select id="crypt_type" name="crypt_type">
<?php
foreach ($crypt_types as $driver => $name):
echo $_['crypt_type'];
if($_['crypt_type'] == $driver): ?>
<option selected="selected" value="<?php echo $driver; ?>"><?php echo $name; ?></option>
<?php else: ?>
<option value="<?php echo $driver; ?>"><?php echo $name; ?></option>
<?php endif;
endforeach; ?>
- </select>
- </p>
- <p><label for="sql_column_active"><?php echo $l->t('User Active Column');?></label><input type="text" id="sql_column_active" name="sql_column_active" value="<?php echo $_['sql_column_active']; ?>" /></p>
- <p><label for="strip_domain"><?php echo $l->t('Strip Domain Part from Username');?></label><input type="checkbox" id="strip_domain" name="strip_domain" value="1"<?php if($_['strip_domain']) echo ' checked'; ?> title="Strip Domain Part from Username when logging in and retrieving username lists"></p>
- <p><label for="default_domain"><?php echo $l->t('Add default domain to Usernames');?></label><input type="text" id="default_domain" name="default_domain" value="<?php echo $_['default_domain']; ?>" /></p>
+ </select></td>
+ </tr>
+ <tr><td><label for="sql_column_active"><?php echo $l->t('User Active Column');?></label></td><td><input type="text" id="sql_column_active" name="sql_column_active" value="<?php echo $_['sql_column_active']; ?>" /></td></tr>
+ <tr><td><label for="strip_domain"><?php echo $l->t('Strip Domain Part from Username');?></label></td><td><input type="checkbox" id="strip_domain" name="strip_domain" value="1"<?php if($_['strip_domain']) echo ' checked'; ?> title="Strip Domain Part from Username when logging in and retrieving username lists"></td></tr>
+ <tr><td><label for="default_domain"><?php echo $l->t('Add default domain to Usernames');?></label></td><td><input type="text" id="default_domain" name="default_domain" value="<?php echo $_['default_domain']; ?>" /></td></tr>
+ </table>
+ </fieldset>
<input type="hidden" name="requesttoken" value="<?php echo $_['requesttoken'] ?>" id="requesttoken" />
- <input type="submit" value="<?php echo $l->t('Save'); ?>" />
- </fieldset>
+ <input type="hidden" name="appname" value="user_sql" />
+ <input id="sqlSubmit" type="submit" value="<?php echo $l->t('Save'); ?>" />
+ <div id="sql_update_message" class="statusmessage"><?php echo $l->t('Saving...'); ?></div>
+ <div id="sql_error_message" class="errormessage"></div>
+ <div id="sql_success_message" class="successmessage"></div>
+ </div>
</form>

File Metadata

Mime Type
text/x-diff
Expires
Fri, Jan 24, 3:08 PM (17 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
532454
Default Alt Text
(15 KB)

Event Timeline