Issue information
-
#000012
-
1.9.91 (Sefrengo 2.0 beta)
-
1.9.92 (Sefrengo 2.0 beta2)
-
Erledigt
-
2 - Fair
Issue Confirmations
-
Yes (0)No (0)
Beim anlegen einer CSS oder JS Datei wird ein Fehler ausgegeben
Geschrieben von bjoern on 26 Januar 2012 - 22:32
Wenn unter "Design > Stylesheet" oder "Design > Javascript" eine neue Datei im Backend angelegt wird, wird nach dem Speichern die Fehlermeldung "
Die Rechte konnten nicht angelegt werden!
" ausgegeben.
In backend\API\MODEL\FileSqlItem.php (Zeile 685 ff.) wird das iddirectory verlangt um die Rechte zu kopieren. Allerdings ist diese im CSS- und JS-Bereich iddirectory="0", da gegenüber dem Dateimanager auch Dateien im Basisverzeichnis abgelegt werden können. Diese darf jedoch nach xcopy_perm (backend\inc\class.user_perms.php) nicht leer sein.
@ Björn: Kannst du da bitte weiterhelfen? Kann die xcopy_perm modifiziert werden, so dass auch iddirectory="0" zulässig ist, oder geht das mit dem Rechtesystem nicht?
@ Björn: Kannst du da bitte weiterhelfen? Kann die xcopy_perm modifiziert werden, so dass auch iddirectory="0" zulässig ist, oder geht das mit dem Rechtesystem nicht?
// set userright after upload
// 1. if userrights are existing ... no changes
// 2. no userrights are existing ... xcopy directory-rights to the file, reset the directory bits
if ($this->permsExists() == FALSE) {
// copy userrights from directory
$bool = $this->cfg->perm()->xcopy_perm(
$fields['iddirectory'],
$this->objperm['upload']['type'],
$this->getId(),
$this->objperm['default']['type'],
0x01B50000,
0,
0,
TRUE
);
if($bool == FALSE)
{
throw sf_exception('warning', 'add_rights_failed', array('path' => $this->getPath($fields['area'], '', $fields['filename'])));
return FALSE;
}
}
Wenn eine Datei kein Elternordner hat, weil sich diese im Wurzelverzeichnis befindet, dann muß das "area" Recht abgefragt werden. Denn dieses ist dann das Elternelement.
Also statt
$this->cfg->perm()->xcopy_perm('', 'directory', ....
einfach so:
$this->cfg->perm()->xcopy_perm('', 'area_fm', ....
Dann gehts. Ich hab das getestet, funktioniert. In der FileSqlItem Klasse befindet sich das xcopy an 4 Stellen. Wäre vielleicht ganz gut, wenn da noch eine Methode draus gemacht wird.
Also statt
$this->cfg->perm()->xcopy_perm('', 'directory', ....
einfach so:
$this->cfg->perm()->xcopy_perm('', 'area_fm', ....
Dann gehts. Ich hab das getestet, funktioniert. In der FileSqlItem Klasse befindet sich das xcopy an 4 Stellen. Wäre vielleicht ganz gut, wenn da noch eine Methode draus gemacht wird.
@Björn. Vielen Dank für den Hinweis. Der Code ist refaktorisiert und der Fehler behoben; beides in der nächsten Version enthalten.
0 user(s) are reading this issue
0 Mitglieder, 0 Gäste, 0 anonyme Nutzer










