openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit f02b7060c67cf2b1519d5c523bf755583505ebce
parent c5e0fcc72f040db46c0714a4f65f6ecf399a5078
Author: dankert <devnull@localhost>
Date:   Wed,  4 Nov 2009 20:03:54 +0100

Readonly-Status berücksichtigen.

Diffstat:
actionClasses/FileAction.class.php | 13++++++++-----
actionClasses/FolderAction.class.php | 15++++++++++-----
actionClasses/GroupAction.class.php | 8++++++--
actionClasses/LanguageAction.class.php | 5+++--
actionClasses/ModelAction.class.php | 5+++--
actionClasses/PageAction.class.php | 8+++++++-
actionClasses/TemplateAction.class.php | 4++++
actionClasses/UserAction.class.php | 11++++++++---
8 files changed, 49 insertions(+), 20 deletions(-)

diff --git a/actionClasses/FileAction.class.php b/actionClasses/FileAction.class.php @@ -620,19 +620,22 @@ class FileAction extends ObjectAction switch( $name ) { case 'uncompress': - return in_array($this->file->extension,$compressionTypes); + return !readonly() && in_array($this->file->extension,$compressionTypes); case 'compress': - return !in_array($this->file->extension,$compressionTypes); + return !readonly() && !in_array($this->file->extension,$compressionTypes); case 'extract': - return in_array($this->file->extension,$archiveTypes); + return !readonly() && in_array($this->file->extension,$archiveTypes); case 'size': - return $this->file->isImage(); + return !readonly() && $this->file->isImage(); case 'editvalue': - return substr($this->file->mimeType(),0,5)=='text/'; + return !readonly() && substr($this->file->mimeType(),0,5)=='text/'; + + case 'aclform': + return !readonly(); default: return true; diff --git a/actionClasses/FolderAction.class.php b/actionClasses/FolderAction.class.php @@ -1306,20 +1306,25 @@ class FolderAction extends ObjectAction switch( $name) { case 'createfolder': - return $this->folder->hasRight(ACL_CREATE_FOLDER) && count($this->folder->parentObjectFileNames(true,true)) < MAX_FOLDER_DEPTH; + return !readonly() && $this->folder->hasRight(ACL_CREATE_FOLDER) && count($this->folder->parentObjectFileNames(true,true)) < MAX_FOLDER_DEPTH; case 'createfile': - return $this->folder->hasRight(ACL_CREATE_FILE); + return !readonly() && $this->folder->hasRight(ACL_CREATE_FILE); case 'createlink': - return $this->folder->hasRight(ACL_CREATE_LINK); + return !readonly() && $this->folder->hasRight(ACL_CREATE_LINK); case 'createpage': - return $this->folder->hasRight(ACL_CREATE_PAGE); + return !readonly() && $this->folder->hasRight(ACL_CREATE_PAGE); case 'remove': - return count($this->folder->getObjectIds()) == 0; + return !readonly() && count($this->folder->getObjectIds()) == 0; + case 'select': + case 'order': + case 'aclform': + return !readonly(); + default: return true; } diff --git a/actionClasses/GroupAction.class.php b/actionClasses/GroupAction.class.php @@ -293,13 +293,17 @@ class GroupAction extends Action { switch( $menu ) { + case 'remove': + case 'add': + return !readonly(); + case 'users': // Benutzerliste nur anzeigen, wenn welche vorhanden. - return count($this->group->getUsers()) > 0; + return !readonly() && count($this->group->getUsers()) > 0; case 'adduser': // Benutzer k�nnen nur hinzugef�gt werden, wenn noch nicht alle // in der Gruppe sind. - return count($this->group->getOtherUsers()) > 0; + return !readonly() && count($this->group->getOtherUsers()) > 0; default: return true; } diff --git a/actionClasses/LanguageAction.class.php b/actionClasses/LanguageAction.class.php @@ -269,6 +269,7 @@ class LanguageAction extends Action case 'remove': $actLanguage = Session::getProjectLanguage(); return + !readonly() && $this->userIsAdmin() && count( $this->language->getAll() ) >= 2 && isset($this->language) && @@ -276,8 +277,8 @@ class LanguageAction extends Action case 'add': return - $this->userIsAdmin(); - + !readonly() && $this->userIsAdmin(); + default: return true; } diff --git a/actionClasses/ModelAction.class.php b/actionClasses/ModelAction.class.php @@ -200,14 +200,15 @@ class ModelAction extends Action case 'remove': $actModel = Session::getProjectModel(); return + !readonly() && $this->userIsAdmin() && count( $this->model->getAll() ) >= 2 && $actModel->modelid != $this->model->modelid; case 'add': return - $this->userIsAdmin(); - + !readonly() && $this->userIsAdmin(); + default: return true; } diff --git a/actionClasses/PageAction.class.php b/actionClasses/PageAction.class.php @@ -762,7 +762,13 @@ class PageAction extends ObjectAction { case 'changetemplate': // Template nur austauschbar, wenn es mind. 2 gibt. - return (count(Template::getAll()) > 1); + return (!readonly() && count(Template::getAll()) > 1); + + case 'aclform': + return !readonly(); + + case 'form': + return !readonly(); default: return true; diff --git a/actionClasses/TemplateAction.class.php b/actionClasses/TemplateAction.class.php @@ -673,6 +673,10 @@ class TemplateAction extends Action case 'pages': // Anzeige von Seiten nur dann sinnvoll, wenn es auch Seiten gibt. return (count($this->template->getDependentObjectIds()) > 0); + + case 'add': + case 'addel': + return !readonly(); default: return true; diff --git a/actionClasses/UserAction.class.php b/actionClasses/UserAction.class.php @@ -387,14 +387,19 @@ class UserAction extends Action switch( $menu ) { + case 'add': + case 'remove': + return !readonly(); + case 'addgroup': - return count($this->user->getOtherGroups()) > 0; + return !readonly() && count($this->user->getOtherGroups()) > 0; case 'groups': - return count($this->user->getGroups()) > 0; + return !readonly() && count($this->user->getGroups()) > 0; case 'pw': - return @$conf['security']['auth']['type'] == 'database' + return !readonly() + && @$conf['security']['auth']['type'] == 'database' && !@$conf['security']['auth']['userdn']; }