/**
  *
  * @param string $strEventName
  * @param array $arrArguments
  *
  * @return bool
  */
 public function handleEvent($strEventName, array $arrArguments)
 {
     //unwrap arguments
     list($strSystemid, $strSourceClass) = $arrArguments;
     if ($strSourceClass == "class_module_system_aspect") {
         //if we have just one aspect remaining, set this one as default
         if (class_module_system_aspect::getObjectCount() == 1) {
             /** @var class_module_system_aspect[] $arrObjAspects */
             $arrObjAspects = class_module_system_aspect::getObjectList();
             $objOneAspect = $arrObjAspects[0];
             $objOneAspect->setBitDefault(1);
             return $objOneAspect->updateObjectToDb();
         }
     }
     return true;
 }
 public function testLogicalDelete()
 {
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::INCLUDED());
     $intCountTotal = class_module_system_aspect::getObjectCount();
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     $intCountActive = class_module_system_aspect::getObjectCount();
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUSIVE());
     $intCountDeleted = class_module_system_aspect::getObjectCount();
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     echo "Creating aspect\n";
     $objAspect1 = new class_module_system_aspect();
     $objAspect1->setStrName("Dummy");
     $objAspect1->updateObjectToDb();
     $objAspect = new class_module_system_aspect();
     $objAspect->setStrName("logical delete");
     $objAspect->updateObjectToDb();
     $strAspectId = $objAspect->getSystemid();
     $this->assertEquals($intCountActive + 2, class_module_system_aspect::getObjectCount());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals(1, count($arrAspects));
     echo "Deleting logically\n";
     $this->assertEquals($objAspect->getIntRecordDeleted(), 0);
     $objAspect->deleteObject();
     $this->assertEquals($objAspect->getIntRecordDeleted(), 1);
     $this->assertEquals($objAspect->getIntSort(), -1);
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     echo "Loading non-deleted only\n";
     $this->assertEquals($intCountActive + 1, class_module_system_aspect::getObjectCount());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals(0, count($arrAspects));
     echo "Loading deleted only\n";
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUSIVE());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals($intCountDeleted + 1, class_module_system_aspect::getObjectCount());
     $this->assertEquals(1, count($arrAspects));
     echo "Loading mixed deleted and non-deleted\n";
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::INCLUDED());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals($intCountTotal + 2, class_module_system_aspect::getObjectCount());
     $this->assertEquals(1, count($arrAspects));
     echo "Deleting from database\n";
     $objAspect->deleteObjectFromDatabase();
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     echo "Loading non-deleted only\n";
     $this->assertEquals($intCountActive + 1, class_module_system_aspect::getObjectCount());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals(0, count($arrAspects));
     echo "Loading deleted only\n";
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUSIVE());
     $arrAspects = class_module_system_aspect::getObjectList();
     $arrAspects = array_filter($arrAspects, function (class_module_system_aspect $objAspect) use($strAspectId) {
         return $objAspect->getSystemid() == $strAspectId;
     });
     $this->assertEquals($intCountDeleted, class_module_system_aspect::getObjectCount());
     $this->assertEquals(0, count($arrAspects));
     echo "Deleting dummy node directly\n";
     $objAspect1->deleteObjectFromDatabase();
     echo "Loading non-deleted only\n";
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUDED());
     $this->assertEquals($intCountActive, class_module_system_aspect::getObjectCount());
     echo "Loading deleted only\n";
     class_orm_base::setObjHandleLogicalDeletedGlobal(class_orm_deletedhandling_enum::EXCLUSIVE());
     $this->assertEquals($intCountDeleted, class_module_system_aspect::getObjectCount());
 }
 /**
  * Static helper to flush the complete backend navigation cache for the current session
  * May be used during language-changes or user-switches
  *
  * @return void
  */
 public static function flushActionNavigationCache()
 {
     $arrAspects = class_module_system_aspect::getObjectList();
     foreach (class_module_system_module::getModulesInNaviAsArray() as $arrOneModule) {
         $objOneModule = class_module_system_module::getModuleByName($arrOneModule["module_name"]);
         foreach ($arrAspects as $objOneAspect) {
             class_carrier::getInstance()->getObjSession()->sessionUnset(__CLASS__ . "adminNaviEntries" . $objOneModule->getSystemid() . $objOneAspect->getSystemid());
         }
     }
 }
 /**
  * Renders the list of aspects available
  *
  * @return string
  * @autoTestable
  * @permissions right5
  */
 protected function actionAspects()
 {
     $objIterator = new class_array_section_iterator(class_module_system_aspect::getObjectCount());
     $objIterator->setPageNumber($this->getParam("pv"));
     $objIterator->setArraySection(class_module_system_aspect::getObjectList("", $objIterator->calculateStartPos(), $objIterator->calculateEndPos()));
     return $this->renderList($objIterator, false, "aspectList");
 }
Beispiel #5
0
 public function testAddGroupToPermission()
 {
     $objAspect = new class_module_system_aspect();
     $objAspect->setStrName("democase");
     $objAspect->updateObjectToDb();
     $strGroupId = generateSystemid();
     //fill caches
     class_module_system_aspect::getObjectList();
     $arrRow = class_carrier::getInstance()->getObjDB()->getPRow("SELECT * FROM " . _dbprefix_ . "system_right WHERE right_id = ?", array($objAspect->getSystemid()), 0, false);
     $this->assertTrue(!in_array($strGroupId, explode(",", $arrRow["right_view"])));
     $this->assertTrue(!class_carrier::getInstance()->getObjRights()->checkPermissionForGroup($strGroupId, class_rights::$STR_RIGHT_VIEW, $objAspect->getSystemid()));
     class_carrier::getInstance()->getObjRights()->addGroupToRight($strGroupId, $objAspect->getSystemid(), class_rights::$STR_RIGHT_VIEW);
     $arrRow = class_carrier::getInstance()->getObjDB()->getPRow("SELECT * FROM " . _dbprefix_ . "system_right WHERE right_id = ?", array($objAspect->getSystemid()), 0, false);
     $this->assertTrue(in_array($strGroupId, explode(",", $arrRow["right_view"])));
     $this->assertTrue(class_carrier::getInstance()->getObjRights()->checkPermissionForGroup($strGroupId, class_rights::$STR_RIGHT_VIEW, $objAspect->getSystemid()));
     class_module_system_aspect::getObjectList();
     $arrRow = class_carrier::getInstance()->getObjDB()->getPRow("SELECT * FROM " . _dbprefix_ . "system_right WHERE right_id = ?", array($objAspect->getSystemid()), 0, false);
     $this->assertTrue(in_array($strGroupId, explode(",", $arrRow["right_view"])));
     $this->assertTrue(class_carrier::getInstance()->getObjRights()->checkPermissionForGroup($strGroupId, class_rights::$STR_RIGHT_VIEW, $objAspect->getSystemid()));
     $objAspect->deleteObjectFromDatabase();
 }