From 0344b168276f80189e2254c75a762aff5b517b6b Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 22 May 2016 06:32:57 -0400
Subject: [PATCH] Fix priority icon(s) position

---
 bin/moduserprefs.sh |   72 ++++++++++++++---------------------
 1 files changed, 29 insertions(+), 43 deletions(-)

diff --git a/bin/moduserprefs.sh b/bin/moduserprefs.sh
index b8ba985..858d76b 100755
--- a/bin/moduserprefs.sh
+++ b/bin/moduserprefs.sh
@@ -2,10 +2,10 @@
 <?php
 /*
  +-----------------------------------------------------------------------+
- | bin/moduserprefs.sh                                                      |
+ | bin/moduserprefs.sh                                                   |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2012, The Roundcube Dev Team                            |
+ | Copyright (C) 2012-2015, The Roundcube Dev Team                       |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -18,65 +18,51 @@
  +-----------------------------------------------------------------------+
 */
 
-define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
+define('INSTALL_PATH', realpath(__DIR__ . '/..') . '/' );
 
 require_once INSTALL_PATH.'program/include/clisetup.php';
 
 function print_usage()
 {
-	print "Usage: moduserprefs.sh [--user=user-id] pref-name [pref-value|--delete]\n";
-	print "--user   User ID in local database\n";
-	print "--delete Unset the given preference\n";
+    print "Usage: moduserprefs.sh [options] pref-name [pref-value]\n";
+    print "Options:\n";
+    print "    --user=user-id User ID in local database\n";
+    print "    --config=path  Location of additional configuration file\n";
+    print "    --delete       Unset the given preference\n";
+    print "    --type=type    Pref-value type: int, bool, string\n";
 }
 
 
 // get arguments
-$args = rcube_utils::get_opt(array('u' => 'user', 'd' => 'delete'));
+$args = rcube_utils::get_opt(array(
+        'u' => 'user',
+        'd' => 'delete',
+        't' => 'type',
+        'c' => 'config',
+));
 
 if ($_SERVER['argv'][1] == 'help') {
-	print_usage();
-	exit;
+    print_usage();
+    exit;
 }
 else if (empty($args[0]) || (!isset($args[1]) && !$args['delete'])) {
-	print "Missing required parameters.\n";
-	print_usage();
-	exit;
+    print "Missing required parameters.\n";
+    print_usage();
+    exit;
 }
 
 $pref_name  = trim($args[0]);
 $pref_value = $args['delete'] ? null : trim($args[1]);
 
-// connect to DB
-$rcmail = rcmail::get_instance();
-
-$db = $rcmail->get_dbh();
-$db->db_connect('w');
-
-if (!$db->is_connected() || $db->is_error())
-	die("No DB connection\n" . $db->is_error());
-
-$query = '1=1';
-
-if ($args['user'])
-	$query = 'user_id=' . intval($args['user']);
-
-// iterate over all users
-$sql_result = $db->query("SELECT * FROM " . $rcmail->config->get('db_table_users', 'users')." WHERE $query");
-while ($sql_result && ($sql_arr = $db->fetch_assoc($sql_result))) {
-	echo "Updating prefs for user " . $sql_arr['user_id'] . "...";
-
-	$user = new rcube_user($sql_arr['user_id'], $sql_arr);
-	$prefs = $old_prefs = $user->get_prefs();
-
-	$prefs[$pref_name] = $pref_value;
-
-	if ($prefs != $old_prefs) {
-		$user->save_prefs($prefs);
-		echo "saved.\n";
-	}
-	else {
-		echo "nothing changed.\n";
-	}
+if ($pref_value === null) {
+    $args['type'] = null;
 }
 
+if ($args['config']) {
+    $rcube = rcube::get_instance();
+    $rcube->config->load_from_file($args['config']);
+}
+
+rcmail_utils::mod_pref($pref_name, $pref_value, $args['user'], $args['type']);
+
 ?>

--
Gitblit v1.9.1