commit f02b7060c67cf2b1519d5c523bf755583505ebce
parent c5e0fcc72f040db46c0714a4f65f6ecf399a5078
Author: dankert <devnull@localhost>
Date: Wed, 4 Nov 2009 20:03:54 +0100
Readonly-Status berücksichtigen.
Diffstat:
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'];
}