Dotclear

Ticket #435 (closed defect: fixed)

Opened 17 years ago

Last modified 17 years ago

setNamespace() et namespace invalide

Reported by: Moe Owned by: olivier
Priority: low Milestone: 2.1
Component: module:core Version: 2.0
Severity: minor Keywords:
Cc:

Description

Bonjour,
je crois qu'il y a un problème avec la fonction setNamespace() de la classe dcSettings.

Comme on peut le voir   (et ci-dessous), une expression régulière évalue si la chaîne passée en argument est valide ou non. Si la chaîne n'est pas valide (si elle ne contient pas que des lettres minuscules) alors le namespace n'est pas modifié et reste sur "system" par défaut. Un plugin qui essaye d'utiliser un namespace invalide verra donc son paramètre utiliser le namespace "system". C'est ce qui se passe avec dc1redirect car  son namespace n'est pas valide. Ça n'a aucune conséquence mais ça n'est pas normal. On peut le voir dans about:config : le paramètre dc1_redirect apparaît dans le namespace system et non dc1redirect.

On pourrait renvoyer une erreur quand le namespace n'est pas bon en modifiant /dotclear/inc/core/class.dc.settings.php :

public function setNamespace($ns)
{
	if (preg_match('/^[a-z]+$/',$ns)) {
		$this->ns = $ns;
	}
+	else
+	{
+		throw new Exception(__('Invalid namespace :').' '.$ns);
+	}
}

Change History

comment:1 Changed 17 years ago by Moe

Pour mettre à jour le setting du plugin, il faudra mettre quelque chose comme ça :

# change namespace of setting
$cur = $core->con->openCursor($core->prefix.'setting');
$cur->setting_ns = 'dc1redirect';
$cur->update('WHERE (setting_id = \'dc1_redirect\') '.
	'AND (setting_ns = \'system\');');

dans le fichier _install.php du plugin.

comment:2 Changed 17 years ago by olivier

  • Status changed from new to assigned

comment:3 Changed 17 years ago by olivier

(In [2405]) Extended settings namespace name validity. See #435.

comment:4 Changed 17 years ago by olivier

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [2406]) Minor fix in dc1redirect setting handler. Closes #435.

Note: See TracTickets for help on using tickets.

Sites map