Aleksander Machniak
2013-03-10 8b771646fadcde0abb27c2218a45942b95734838
Fix so task name can really contain all from a-z0-9_- characters (#1488941)
5 files modified
15 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcmail.php 2 ●●● patch | view | raw | blame | history
program/js/app.js 6 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_plugin.php 2 ●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_plugin_api.php 4 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix so task name can really contain all from a-z0-9_- characters (#1488941)
- Support IMAP MOVE extension [RFC 6851]
- Fix javascript errors when working in a page opened with taget="_blank"
- Mention SQLite database format change in UPGRADING file (#1488983)
program/include/rcmail.php
@@ -123,7 +123,7 @@
   */
  public function set_task($task)
  {
    $task = asciiwords($task);
    $task = asciiwords($task, true);
    if ($this->user && $this->user->ID)
      $task = !$task ? 'mail' : $task;
program/js/app.js
@@ -1235,7 +1235,7 @@
    if (!url)
      url = this.env.comm_path;
    return url.replace(/_task=[a-z]+/, '_task='+task);
    return url.replace(/_task=[a-z0-9_-]+/i, '_task='+task);
  };
  this.reload = function(delay)
@@ -5970,9 +5970,9 @@
    var base = this.env.comm_path, k, param = {};
    // overwrite task name
    if (query._action.match(/([a-z]+)\/([a-z0-9-_.]+)/)) {
    if (query._action.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)) {
      query._action = RegExp.$2;
      base = base.replace(/\_task=[a-z]+/, '_task='+RegExp.$1);
      base = base.replace(/\_task=[a-z0-9_-]+/, '_task='+RegExp.$1);
    }
    // remove undefined values
program/lib/Roundcube/rcube_plugin.php
@@ -237,7 +237,7 @@
    /**
     * Register this plugin to be responsible for a specific task
     *
     * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
     * @param string $task Task name (only characters [a-z0-9_-] are allowed)
     */
    public function register_task($task)
    {
program/lib/Roundcube/rcube_plugin_api.php
@@ -372,7 +372,7 @@
    /**
     * Register this plugin to be responsible for a specific task
     *
     * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
     * @param string $task Task name (only characters [a-z0-9_-] are allowed)
     * @param string $owner Plugin name that registers this action
     */
    public function register_task($task, $owner)
@@ -382,7 +382,7 @@
            return true;
        }
        if ($task != asciiwords($task)) {
        if ($task != asciiwords($task, true)) {
            rcube::raise_error(array('code' => 526, 'type' => 'php',
                'file' => __FILE__, 'line' => __LINE__,
                'message' => "Invalid task name: $task."