/** * Validates a set of permissions for a single object. * The string of permissions is a comma-separated list, whereas the entries may be one of * view, edit, delete, right, right1, right2, right3, right4, right5 * If at least a single permission is given, true is returned, otherwise false. * * @param string $strPermissions * @param class_model $objObject * * @return bool * @throws class_exception * @since 4.0 */ public function validatePermissionString($strPermissions, class_model $objObject) { if (!$objObject instanceof class_model) { throw new class_exception("automated permission-check only for instances of class_model", class_exception::$level_ERROR); } if (trim($strPermissions) == "") { return false; } $arrPermissions = explode(",", $strPermissions); foreach ($arrPermissions as $strOnePermissions) { $strOnePermissions = trim($strOnePermissions); switch (trim($strOnePermissions)) { case self::$STR_RIGHT_VIEW: if ($objObject->rightView()) { return true; } break; case self::$STR_RIGHT_EDIT: if ($objObject->rightEdit()) { return true; } break; case self::$STR_RIGHT_DELETE: if ($objObject->rightDelete()) { return true; } break; case self::$STR_RIGHT_RIGHT: if ($objObject->rightRight()) { return true; } break; case self::$STR_RIGHT_RIGHT1: if ($objObject->rightRight1()) { return true; } break; case self::$STR_RIGHT_RIGHT2: if ($objObject->rightRight2()) { return true; } break; case self::$STR_RIGHT_RIGHT3: if ($objObject->rightRight3()) { return true; } break; case self::$STR_RIGHT_RIGHT4: if ($objObject->rightRight4()) { return true; } break; case self::$STR_RIGHT_RIGHT5: if ($objObject->rightRight5()) { return true; } break; case self::$STR_RIGHT_CHANGELOG: if ($objObject->rightChangelog()) { return true; } break; default: break; } } return false; }
/** * @param class_model|interface_admin_listable|interface_model|class_module_pages_pageelement $objOneIterable * @param string $strListIdentifier * * @return string */ public function getActionIcons($objOneIterable, $strListIdentifier = "") { $strActions = ""; if ($objOneIterable instanceof class_module_pages_pageelement) { $objLockmanager = $objOneIterable->getLockManager(); //Create a row to handle the element, check all necessary stuff such as locking etc $strActions = ""; //First step - Record locked? Offer button to unlock? But just as admin! For the user, who locked the record, the unlock-button //won't be visible if (!$objLockmanager->isAccessibleForCurrentUser()) { //So, return a button, if we have an admin in front of us if ($objLockmanager->isUnlockableForCurrentUser()) { $strActions .= $this->objToolkit->listButton(class_link::getLinkAdmin("pages_content", "list", "&systemid=" . $this->getSystemid() . "&adminunlockid=" . $objOneIterable->getSystemid(), "", $this->getLang("ds_entsperren"), "icon_lockerOpen")); } //If the Element is locked, then its not allowed to edit or delete the record, so disable the icons if ($objOneIterable->rightEdit()) { $strActions .= $this->objToolkit->listButton(class_adminskin_helper::getAdminImage("icon_editLocked", $this->getLang("ds_gesperrt"))); } if ($objOneIterable->rightDelete()) { $strActions .= $this->objToolkit->listButton(class_adminskin_helper::getAdminImage("icon_deleteLocked", $this->getLang("ds_gesperrt"))); } } else { if ($objOneIterable->rightEdit()) { $strActions .= $this->objToolkit->listButton(class_link::getLinkAdmin("pages_content", "edit", "&systemid=" . $objOneIterable->getSystemid(), "", $this->getLang("element_bearbeiten"), "icon_edit")); } if ($objOneIterable->rightDelete()) { $strActions .= $this->objToolkit->listDeleteButton($objOneIterable->getStrName() . ($objOneIterable->getConcreteAdminInstance()->getContentTitle() != "" ? " - " . $objOneIterable->getConcreteAdminInstance()->getContentTitle() : "") . ($objOneIterable->getStrTitle() != "" ? " - " . $objOneIterable->getStrTitle() : ""), $this->getLang("element_loeschen_frage"), class_link::getLinkAdminHref("pages_content", "deleteElementFinal", "&systemid=" . $objOneIterable->getSystemid() . ($this->getParam("pe") == "" ? "" : "&peClose=" . $this->getParam("pe")))); } } //The Icons to sort the list and to copy the element $strActions .= $this->objToolkit->listButton(class_link::getLinkAdminDialog("pages_content", "copyElement", "&systemid=" . $objOneIterable->getSystemid(), "", $this->getLang("element_copy"), "icon_copy")); //The status-icons $strActions .= $this->objToolkit->listStatusButton($objOneIterable->getSystemid()); } else { if ($objOneIterable instanceof class_module_pages_element) { $objAdminInstance = class_module_system_module::getModuleByName("pages")->getAdminInstanceOfConcreteModule(); if ($objAdminInstance != null && $objAdminInstance instanceof class_admin_simple) { return $objAdminInstance->getActionIcons($objOneIterable); } } } return $strActions; }