public function indexAction()
 {
     $resource = new Acl_Model_Resource();
     $resources = $resource->findAll(array(new Zend_Db_Expr("code LIKE 'editor_%'")));
     foreach ($resources as $resource) {
         if ($this->_canAccess($resource->getCode())) {
             $this->_redirect($resource->getData("url"));
         }
     }
     $this->_redirect('application/customization_design_style/edit');
 }
示例#2
0
 /**
  * extension action for index controller
  */
 public function extensionAction()
 {
     // action body
     try {
         $translate = Zend_Registry::get('Zend_Translate');
         $mdlResource = new Acl_Model_Resource();
         $modules = $mdlResource->getModules();
         $modData = array();
         foreach ($modules as $module) {
             $moduleInfoFile = APPLICATION_PATH . '/modules/' . $module->module . '/about.xml';
             if (file_exists($moduleInfoFile)) {
                 $sxe = new SimpleXMLElement($moduleInfoFile, null, true);
                 foreach ($sxe as $mod) {
                     $modData[] = $mod;
                 }
             }
         }
         $this->view->modules = $modData;
     } catch (Exception $e) {
         echo $e->getMessage();
     }
 }
 public function saveAction()
 {
     if ($param = Zend_Json::decode($this->getRequest()->getRawBody())) {
         try {
             $role = new Acl_Model_Role();
             if (empty($param["role"]) or !is_array($param["role"])) {
                 throw new Exception($this->_("An error occurred while saving. Please, try again later."));
             }
             $role_data = $param["role"];
             $resources_data = !empty($param["resources"]) ? $param["resources"] : array();
             if (isset($role_data["id"])) {
                 $role->find($role_data["id"]);
             }
             $resource = new Acl_Model_Resource();
             $resources_data = $resource->flattenedResources($resources_data);
             $role->setResources($resources_data)->setLabel($role_data["label"])->setCode($role_data["code"])->save();
             $config = new System_Model_Config();
             $config->find(Acl_Model_Role::DEFAULT_ADMIN_ROLE_CODE, "code");
             $default_role_id = $config->getValue();
             $new_default_role_id = null;
             if ($default_role_id == $role->getId() and !$role_data["default"]) {
                 $new_default_role_id = Acl_Model_Role::DEFAULT_ROLE_ID;
             } else {
                 if ($role_data["default"]) {
                     $new_default_role_id = $role->getId();
                 }
             }
             if (!empty($new_default_role_id)) {
                 $config->setValue($new_default_role_id)->save();
             }
             $data = array("success" => true, "message" => $this->_("Your role has been successfully saved"));
         } catch (Exception $e) {
             $data = array("error" => true, "message" => $e->getMessage());
         }
         $this->_sendHtml($data);
     }
 }
$library->setName('Weather')->save();
// Create the icons
$icons = array("/weather/weather1.png", "/weather/weather2.png", "/weather/weather3.png");
$icon_id = null;
foreach ($icons as $icon) {
    $data = array('library_id' => $library->getId(), 'link' => $icon, 'can_be_colorized' => 1);
    $image = new Media_Model_Library_Image();
    $image->setData($data)->save();
    if (is_null($icon_id)) {
        $icon_id = $image->getId();
    }
}
//Categorization
$category = new Application_Model_Option_Category();
$category->find("misc", "code");
$category_id = null;
if ($category->getId()) {
    $category_id = $category->getId();
}
// Create and declare the feature
$data = array('library_id' => $library->getId(), 'icon_id' => $icon_id, 'code' => 'weather', 'name' => 'Weather', 'model' => 'Weather_Model_Weather', 'desktop_uri' => 'weather/application/', 'mobile_uri' => 'weather/mobile_view/', 'only_once' => 0, 'is_ajax' => 1, 'position' => 240, 'category_id' => $category_id);
$option = new Application_Model_Option();
$option->setData($data)->save();
$resource = new Acl_Model_Resource();
$resource->find("feature", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "weather", "label" => "Access the weather feature", "url" => "weather/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("weather", "code");
    $resource->addData($data)->save();
}
示例#5
0
 /**
  * Choose action for item controller
  * @throws Exception
  * @return NULL
  */
 public function chooseAction()
 {
     // action body
     try {
         $translate = Zend_Registry::get('Zend_Translate');
         $menuId = $this->getRequest()->getParam('menu', 0);
         $mdlMenu = new menu_Model_Menu();
         $menu = $mdlMenu->find($menuId)->current();
         if (!$menu) {
             throw new Exception($translate->translate("MENU_ROW_NOT_FOUND"));
         }
         $this->view->menu = $menu;
         $mdlResource = new Acl_Model_Resource();
         $modules = $mdlResource->getModules();
         $menus = array();
         foreach ($modules as $module) {
             #echo APPLICATION_PATH.'/modules/'.$module->module.'<br>';
             $menuFile = APPLICATION_PATH . '/modules/' . $module->module . '/menus.xml';
             if (file_exists($menuFile)) {
                 #echo "si en ".$module->module.'<br>';
                 $sxe = new SimpleXMLElement($menuFile, null, true);
                 foreach ($sxe as $menuTemp) {
                     #Zend_Debug::dump($widget);
                     $menus[] = $menuTemp;
                 }
             }
             #
         }
         $this->view->menuItemTypes = $menus;
     } catch (Exception $e) {
         $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage()));
         $this->redirect('menu-items/' . $menuId);
     }
     return;
 }
 /**
  * update action for widget controller
  * @throws Exception
  */
 public function updateAction()
 {
     try {
         $translate = Zend_Registry::get('Zend_Translate');
         $id = $this->getRequest()->getParam('id', 0);
         $mdlWidget = new System_Model_Widget();
         $widget = $mdlWidget->find($id)->current();
         if (!$widget) {
             throw new Exception($translate->translate("LBL_ROW_NOT_FOUND"));
         }
         $mdlResource = new Acl_Model_Resource();
         $resource = $mdlResource->find($widget->resource_id)->current();
         $widgetFile = APPLICATION_PATH . '/modules/' . $resource->module . '/widgets.xml';
         if (!file_exists($widgetFile)) {
             throw new Exception($translate->translate("SYSTEM_WIDGET_NOT_FOUND"));
         }
         $sxe = new SimpleXMLElement($widgetFile, null, true);
         $element = null;
         foreach ($sxe as $widgetElement) {
             if ($widgetElement['id'] == $widget->widget_id) {
                 $element = $widgetElement;
                 break;
             }
         }
         if (!$element) {
             throw new Exception($translate->translate("SYSTEM_WIDGET_ELEMENT_NOT_FOUND"));
         }
         #$frmWidget = strval($element->form);
         #$frmWidget = new $frmWidget();
         $frmWidget = ucfirst(strtolower(strval($element->module))) . '_Form_Widgets';
         $frmWidget = strtolower(strval($element->module)) == 'menu' ? 'menu_Form_Widgets' : $frmWidget;
         #$frmWidget = new $frmWidget( array('typeForm'=>'test') );
         $frmWidget = new $frmWidget(array('widgetType' => strtolower(strval($element->widget_type))));
         $hookXml = APPLICATION_PATH . '/configs/hooks.xml';
         $sxeHook = new SimpleXMLElement($hookXml, null, true);
         $cbPosition = $frmWidget->getElement("position");
         foreach ($sxeHook as $hook) {
             $cbPosition->addMultiOption($hook, $hook);
         }
         $mdlMenu = new menu_Model_Menu();
         $mdlMI = new menu_Model_Item();
         $menus = $mdlMenu->getMenus();
         $cbMenuItem = $frmWidget->getElement('menuitem');
         foreach ($menus as $menu) {
             $menuItemData = array();
             $mdlMI->getMenuItemsForWidget(null, $menu, null, $menuItemData);
             $cbMIData[$menu->name] = $menuItemData;
             $cbMenuItem->addMultiOptions($cbMIData);
         }
         $frmWidget->setAction($this->_request->getBaseUrl() . "/system/widget/update");
         $frmWidget->populate($widget->toArray());
         $mdlWidgetDetail = new System_Model_Widgetdetail();
         $renderForAll = $mdlWidgetDetail->isRenderForAll($widget);
         if ($renderForAll === false) {
             $rowsSelected = array();
             $menuItems = $widget->findManyToManyRowset('menu_Model_Item', 'System_Model_Widgetdetail', 'Widget');
             foreach ($menuItems as $menuItemSelected) {
                 $rowsSelected[] = $menuItemSelected->id;
             }
             $frmWidget->populate(array('menuitem' => $rowsSelected));
             $frmWidget->getElement('renderfor')->setValue(1);
         } else {
             $frmWidget->getElement('renderfor')->setValue(0);
             $frmWidget->getElement('menuitem')->setAttrib('disabled', true);
         }
         $params = Zend_Json::decode($widget->params);
         $frmWidget->populate($params);
         if ($this->getRequest()->isPost()) {
             if ($frmWidget->isValid($this->getRequest()->getParams())) {
                 $defaultFormFields = array('id', 'wid', 'mod', 'position', 'title', 'published', 'menuitem', 'csrf_token', 'token', 'widget_id', 'showtitle');
                 $widget->title = $frmWidget->getElement('title')->getValue();
                 $widget->published = $frmWidget->getElement('published')->getValue();
                 $widget->position = $frmWidget->getElement('position')->getValue();
                 $widget->showtitle = $frmWidget->getElement('showtitle')->getValue();
                 $frmWidgetValues = $frmWidget->getValues();
                 $params = array();
                 foreach ($frmWidgetValues as $wvk => $wv) {
                     if (!in_array($wvk, $defaultFormFields)) {
                         #$params[] = $wvk.'='.$wv.'';
                         $params[$wvk] = $wv;
                     }
                 }
                 #$params = implode("\n", $params);
                 #$widget->params = $params;
                 $widget->params = Zend_Json::encode($params);
                 #Zend_Debug::dump( $widget );
                 #die();
                 $widget->save();
                 $menuItemsWidget = $widget->findDependentRowset('System_Model_Widgetdetail', 'Widget');
                 foreach ($menuItemsWidget as $miw) {
                     $miw->delete();
                 }
                 if ($frmWidget->getElement('renderfor')->getValue() == 0) {
                     $widgetDetail = $mdlWidgetDetail->createRow();
                     $widgetDetail->widget_id = $widget->id;
                     $widgetDetail->menuitem_id = null;
                     $widgetDetail->save();
                 } else {
                     foreach ($frmWidget->getValue('menuitem') as $mi) {
                         $widgetDetail = $mdlWidgetDetail->createRow();
                         $widgetDetail->widget_id = $widget->id;
                         $widgetDetail->menuitem_id = $mi;
                         $widgetDetail->save();
                         #Zend_Debug::dump($widgetDetail);
                     }
                 }
                 #Zend_Debug::dump( $menuItemsWidget );
                 $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("SYSTEM_WIDGET_UPDATED_SUCCESSFULLY")));
                 $this->_helper->redirector("list", "widget", "system");
             }
         } else {
             /*$fields = array();
             		foreach ( $frmWidget->getElements() as $wfelement ) $fields[] = $wfelement->getName();
             		$frmWidget->addDisplayGroup( $fields, 'form', array( 'legend' => $translate->translate("SYSTEM_UPDATE_WIDGET"), ) );*/
         }
         $this->view->frmWidget = $frmWidget;
         $this->view->widget = $element;
         #Zend_Debug::dump($element);
     } catch (Exception $e) {
         $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage()));
         $this->_helper->redirector("list", "widget", "system");
     }
     return;
 }
 /**
  * Delete action for resource controller
  * @throws Zend_Exception
  */
 public function deleteAction()
 {
     $translate = Zend_Registry::get('Zend_Translate');
     try {
         $id = $this->getRequest()->getParam("id");
         $mdlResource = new Acl_Model_Resource();
         $resource = $mdlResource->find($id)->current();
         if (!$resource) {
             throw new Zend_Exception($translate->translate("LBL_ROW_NOT_FOUND"));
         }
         $resource->delete();
         $this->_helper->flashMessenger->addMessage(array('type' => 'info', 'header' => '', 'message' => $translate->translate("LBL_CHANGES_SAVED")));
         $this->_helper->redirector("list", "resource", "acl");
     } catch (Exception $e) {
         $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage()));
         $this->_helper->redirector("list", "resource", "acl");
     }
     return;
 }
示例#8
0
 /**
  * PreDispatch method for ACL Plugin. It checks if current user has privileges for resources requested 
  * @see Zend_Controller_Plugin_Abstract::preDispatch()
  * @param Zend_Controller_Request_Abstract $request 
  */
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     try {
         $frontendOptions = array('lifetime' => 43200, 'automatic_serialization' => true);
         $backendOptions = array('cache_dir' => APPLICATION_CACHE_PATH);
         $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
         // fetch the current user
         $auth = Zend_Auth::getInstance();
         if ($auth->hasIdentity()) {
             $identity = $auth->getIdentity();
             $objRole->id = $identity->role_id;
             // get an instance of Zend_Session_Namespace used by Zend_Auth
             #$authns = new Zend_Session_Namespace($auth->getStorage()->getNamespace());
             // set an expiration on the Zend_Auth namespace where identity is held
             #$authns->setExpirationSeconds(60 * 30);  // expire auth storage after 30 min
         } else {
             $objRole->id = 3;
             # guess
         }
         $cacheACL = false;
         if ($cache->load('cacheACL_' . $objRole->id) && $cache->test('cacheACL_' . $objRole->id)) {
             $cacheACL = $cache->load('cacheACL_' . $objRole->id);
         }
         if ($cacheACL == false) {
             // set up acl
             $acl = new Zend_Acl();
             $mdlRole = new Acl_Model_Role();
             $mdlResource = new Acl_Model_Resource();
             $mdlPermission = new Acl_Model_Permission();
             #$role = $mdlRole->createRow();
             $acl->addRole(new Zend_Acl_Role($objRole->id));
             $role = $mdlRole->find($objRole->id)->current();
             #var_dump($role, $objRole->id);
             #die();
             if ($role == null) {
                 throw new Zend_Exception('Role not found');
             }
             $select = $mdlRole->select()->order('priority DESC')->limit(1);
             $childRole = $role->findDependentRowset('Acl_Model_Role', null, $select)->current();
             $resources = $mdlResource->getRegisteredList();
             #if ( !$resources ) throw new Zend_Exception('Resources not available');
             if ($resources->count() > 0) {
                 foreach ($resources as $resource) {
                     $resourceTemp = strtolower($resource->module . ':' . $resource->controller);
                     if (!$acl->has(new Zend_Acl_Resource($resourceTemp))) {
                         $acl->addResource(new Zend_Acl_Resource($resourceTemp));
                     }
                 }
             } else {
                 throw new Zend_Exception('Resources not available');
             }
             if ($resources->count() > 0) {
                 foreach ($resources as $resource) {
                     $resourceTemp = strtolower($resource->module . ':' . $resource->controller);
                     $childPrivilege = $childRole ? $mdlPermission->getByResource($resource, $childRole) : null;
                     $rolePrivilege = $mdlPermission->getByResource($resource, $role);
                     if ($objRole->id < 2) {
                         $acl->allow($objRole->id, $resourceTemp, $resource->actioncontroller);
                     } elseif (!$childRole && !$rolePrivilege || strcasecmp($rolePrivilege->privilege, 'deny') == 0 || $childPrivilege && strcasecmp($childPrivilege->privilege, 'deny') == 0 && !$rolePrivilege) {
                         $acl->deny($objRole->id, $resourceTemp, $resource->actioncontroller);
                     } elseif (strcasecmp($rolePrivilege->privilege, 'allow') == 0 || $childPrivilege && strcasecmp($childPrivilege->privilege, 'allow') == 0 && !$rolePrivilege) {
                         $acl->allow($objRole->id, $resourceTemp, $resource->actioncontroller);
                     }
                 }
                 # foreach ( $resources as $resource )
             }
             # if ( $resources->count() > 0 )
             $cache->save($acl, 'cacheACL_' . $objRole->id);
             Zend_Registry::set('ZendACL', $acl);
         } else {
             Zend_Registry::set('ZendACL', $cacheACL);
         }
         Zend_Registry::set('cacheACL', $cache);
     } catch (Exception $e) {
         try {
             $writer = new Zend_Log_Writer_Stream(APPLICATION_LOG_PATH . 'plugins.log');
             $logger = new Zend_Log($writer);
             $logger->log($e->getMessage(), Zend_Log::ERR);
         } catch (Exception $e) {
         }
     }
 }
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
if ($resource->getId()) {
    $resource->setCode("feature")->save();
}
$this->query("\n    INSERT INTO `acl_role` (`code`, `label`) VALUES ('Admin', 'Administrator : full access');\n");
$this->query("\n      CREATE TABLE `acl_resource_role` (\n        `resource_id` int(11) unsigned NOT NULL,\n        `role_id` int(11) unsigned NOT NULL,\n        PRIMARY KEY(resource_id,role_id)\n      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n      ALTER TABLE `acl_resource_role`\n          ADD CONSTRAINT `FK_RESOURCE_ROLE_RESOURCE_ID` FOREIGN KEY (`resource_id`) REFERENCES `acl_resource` (`resource_id`) ON DELETE CASCADE ON UPDATE CASCADE,\n          ADD CONSTRAINT `FK_RESOURCE_ROLE_ROLE_ID` FOREIGN KEY (`role_id`) REFERENCES `acl_role` (`role_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `admin` \n        ADD `role_id` INT(11) UNSIGNED NOT NULL DEFAULT '1' AFTER `parent_id`, \n        ADD INDEX (`role_id`);\n");
$resource_data = array(array("code" => "application", "label" => "Manage applications", "children" => array(array("code" => "application_create", "label" => "Create an application", "url" => "admin/application/createpost"), array("code" => "application_delete", "label" => "Delete an application", "url" => "admin/application/delete"))), array("code" => "editor", "label" => "Access the application editor", "children" => array(array("code" => "editor_design", "label" => "Access the Design tab", "url" => "application/customization_design_style/edit"), array("code" => "editor_colors", "label" => "Access the Colors tab", "url" => "application/customization_design_colors/edit"), array("code" => "editor_features", "label" => "Access the Features tab", "url" => "application/customization_features/list"), array("code" => "editor_application", "label" => "Access the Application tab", "url" => "application/customization_publication_app/index"), array("code" => "editor_publication", "label" => "Access the Publication tab", "url" => "application/customization_publication_infos/index"), array("code" => "editor_settings", "label" => "Access the settings from the editor", "children" => array(array("code" => "editor_settings_tc", "label" => "Access the Terms & Conditions tab", "url" => "application/settings_tc/*"), array("code" => "editor_settings_facebook", "label" => "Access the Facebook tab", "url" => "application/settings_facebook/*"), array("code" => "editor_settings_domain", "label" => "Access the Domain tab", "url" => "application/settings_domain/*"))))), array("code" => "admin_access_management", "label" => "Manage the editor users", "url" => "admin/access_management/*"), array("code" => "analytics", "label" => "Analytics page", "url" => "application/settings_facebook/*"), array("code" => "promote", "label" => "Promote page", "url" => "application/promote/*"), array("code" => "users", "label" => "Users page", "url" => "customer/application/list"), array("code" => "support", "label" => "Support"));
if (Siberian_Version::TYPE == "PE") {
    $resource_data[] = array("code" => "sales_invoice", "label" => "List, open and print the invoices", "url" => "sales/admin_invoice/*");
}
$option = new Application_Model_Option();
$options = $option->findAll();
$features_resources = array("code" => "feature", "label" => "Features", "children" => array());
foreach ($options as $option) {
    $features_resources["children"][] = array("code" => "feature_" . $option->getCode(), "label" => $option->getname(), "url" => $option->getDesktopUri() . "*");
}
$resource_data[] = $features_resources;
foreach ($resource_data as $data) {
    $resource = new Acl_Model_Resource();
    $resource->setData($data)->save();
    if (!empty($data["children"])) {
        foreach ($data["children"] as $child_resource) {
            $child = new Acl_Model_Resource();
            $child->setData($child_resource)->setParentId($resource->getId())->save();
            if (!empty($child_resource["children"])) {
                foreach ($child_resource["children"] as $child_child_resource) {
                    $child_child = new Acl_Model_Resource();
                    $child_child->setData($child_child_resource)->setParentId($child->getId())->save();
                }
            }
        }
    }
}
示例#11
0
<?php

$weather_resource = new Acl_Model_Resource();
$weather_resource->find("weather", "code");
if ($weather_resource->getId()) {
    $weather_resource->setCode("feature_weather")->setLabel("Weather")->save();
}
示例#12
0
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "feature_code_scan", "label" => "Code Scan", "url" => "codescan/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("feature_code_scan", "code");
    $resource->addData($data)->save();
}
示例#13
0
<?php

$resources = array(array("code" => "feature_magento", "label" => "Magento", "url" => "weblink/application_magento/*"), array("code" => "feature_woocommerce", "label" => "WooCommerce", "url" => "weblink/application_woocommerce/*"), array("code" => "feature_prestashop", "label" => "Prestashop", "url" => "weblink/application_prestashop/*"), array("code" => "feature_volusion", "label" => "Volusion", "url" => "weblink/application_volusion/*"), array("code" => "feature_shopify", "label" => "Shopify", "url" => "weblink/application_shopify/*"));
$resource = new Acl_Model_Resource();
$resource->find("feature", "code");
if ($resource_id = $resource->getId()) {
    foreach ($resources as $data) {
        $resource = new Acl_Model_Resource();
        $resource->find($data["code"], "code");
        if (!$resource->getId()) {
            $data["parent_id"] = $resource_id;
            $resource->addData($data)->save();
        }
    }
}
示例#14
0
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "feature_qr_discount", "label" => "QR Coupons", "url" => "promotion/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("feature_qr_discount", "code");
    $resource->addData($data)->save();
}
 /**
  * Manage action for Permission controller
  * @throws Zend_Exception
  * @return NULL
  */
 public function manageAction()
 {
     try {
         $translate = Zend_Registry::get('Zend_Translate');
         $roleId = $this->getRequest()->getParam('role', 0);
         $mdlRole = new Acl_Model_Role();
         $role = $mdlRole->find($roleId)->current();
         if (!$role) {
             throw new Exception($translate->translate("LBL_ROW_NOT_FOUND"));
         }
         $select = $mdlRole->select()->order('priority DESC')->limit(1);
         $childRole = $role->findDependentRowset('Acl_Model_Role', null, $select)->current();
         $frmManageResource = new Acl_Form_ManageResources();
         $action = $this->_request->getBaseUrl() . "/acl/permission/update";
         $frmManageResource->setAction($action);
         $frmManageResource->getElement('id')->setValue($role->id);
         $mdlResource = new Acl_Model_Resource();
         $mdlPermission = new Acl_Model_Permission();
         $modules = $mdlResource->getModules();
         $zfelements = array();
         $resourceDataIds = array();
         $order = 1;
         foreach ($modules as $module) {
             $resources = $mdlResource->getByModule($module);
             if (!array_key_exists(strtolower($module->module), $zfelements)) {
                 $zfelements[strtolower($module->module)] = array();
             }
             foreach ($resources as $resource) {
                 $resourceDataIds[] = $resource->id;
                 $cbResource = new Zend_Form_Element_Select("cb_res_" . $resource->id);
                 $zfelements[strtolower($module->module)][] = "cb_res_" . $resource->id;
                 $lblResource = $resource->controller . ' / ' . $resource->actioncontroller;
                 $cbResource->setLabel($lblResource);
                 $childPrivilege = $childRole ? $mdlPermission->getByResource($resource, $childRole) : null;
                 $rolePrivilege = $mdlPermission->getByResource($resource, $role);
                 #var_dump($childPrivilege, $rolePrivilege, $lblResource);
                 /*if ( strcasecmp($resource->controller, 'tag') == 0 && strcasecmp($resource->actioncontroller, 'list') == 0 ){
                       Zend_Debug::dump( $childPrivilege, 'child privilege' );
                       Zend_Debug::dump( $rolePrivilege, 'role privilege' );
                   }*/
                 if ($childPrivilege == null && $rolePrivilege == null) {
                     $cbResource->addMultiOption('deny', $translate->translate("ACL_DENIED_DEFAULT"));
                     $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW"));
                 } elseif (isset($rolePrivilege->privilege) && strcasecmp($rolePrivilege->privilege, 'allow') == 0) {
                     $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW"));
                     $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY"));
                 } elseif (isset($rolePrivilege->privilege) && strcasecmp($rolePrivilege->privilege, 'deny') == 0) {
                     $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY"));
                     $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW"));
                 } elseif ($childPrivilege && strcasecmp($childPrivilege->privilege, 'allow') == 0 && !$rolePrivilege) {
                     $cbResource->addMultiOption('allow', sprintf($translate->translate("ACL_ALLOWED_INHERITED_FROM"), $privilege->name));
                     $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY"));
                 } elseif ($childPrivilege && strcasecmp($childPrivilege->privilege, 'deny') == 0 && !$rolePrivilege) {
                     $cbResource->addMultiOption('deny', sprintf($translate->translate("ACL_DENIED_INHERITED_FROM"), $privilege->name));
                     $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW"));
                 }
                 $cbResource->setOrder($order);
                 $frmManageResource->addElement($cbResource);
                 $order++;
             }
         }
         #$frmManageResource->getMessages()
         $resourceDataIds = implode(',', $resourceDataIds);
         $hrs = new Zend_Session_Namespace('resourceDataIds');
         $hrs->hrs = $resourceDataIds;
         #$frmManageResource->getElement('hrs')->setValue( $resourceDataIds );
         $this->view->modules = $modules;
         $this->view->zfelements = $zfelements;
         $this->view->role = $role;
         $this->view->formResources = $frmManageResource;
         $fields = array();
         foreach ($frmManageResource->getElements() as $element) {
             $fields[] = $element->getName();
         }
         $frmManageResource->addDisplayGroup($fields, 'form', array('legend' => "ACL_UPDATE_ROLE"));
     } catch (Exception $e) {
         $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage()));
         $this->_helper->redirector("list", "role", "acl");
     }
     return null;
 }
示例#16
0
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "feature_inapp_messages", "label" => "In-App Messages", "url" => "push/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("feature_inapp_messages", "code");
    $resource->addData($data)->save();
}
$this->query("\n    UPDATE `application_option` SET `model` = 'Push_Model_Message', `name` = 'In-App Messages' WHERE `code` = 'inapp_messages';\n");
示例#17
0
 /**
  * Build the resources, updates the labels and the URLs
  * 
  * @return array
  */
 private function __buildResources()
 {
     if (empty($this->__resources)) {
         $resource = new Acl_Model_Resource();
         $this->__resources = $resource->getResources();
         foreach ($this->__resources as $resource) {
             $this->__acl->addResource(new Zend_Acl_Resource($resource));
         }
         $resource = new Acl_Model_Resource();
         $this->__urls = $resource->getUrls($this->__role_obj->getRoleId());
     }
     return $this->__resources;
 }
示例#18
0
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "feature_topic", "label" => "Topics", "url" => "topic/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("feature_topic", "code");
    $resource->addData($data)->save();
}
示例#19
0
<?php

$resource = new Acl_Model_Resource();
$resource->find("features", "code");
$resources = $resource->findAll(array("parent_id = ?" => $resource->getId()));
foreach ($resources as $resource) {
    if (stripos($resource->getData("url"), "*") === false) {
        $resource->setUrl($resource->getData("url") . "*")->save();
    }
}
示例#20
0
<?php

$this->query("\n    CREATE TABLE `message_application` (\n        `message_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `author_id` int(11) unsigned NOT NULL,\n        `app_id` int(11) unsigned NOT NULL,\n        `message` text COLLATE utf8_unicode_ci NOT NULL,\n        `created_at` datetime NOT NULL,\n        PRIMARY KEY (`message_id`),\n        KEY `author_id` (`author_id`),\n        KEY `app_id` (`app_id`)\n    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    CREATE TABLE `message_application_file` (\n        `file_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `message_id` int(11) unsigned NOT NULL,\n        `file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        PRIMARY KEY (`file_id`),\n        KEY `message_id` (`message_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;\n");
$this->query("\n    ALTER TABLE `message_application`\n        ADD CONSTRAINT `FK_MESSAGE_APPLICATION_APP_ID`\n            FOREIGN KEY (`app_id`) REFERENCES `application` (`app_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `message_application_file`\n        ADD CONSTRAINT `FK_MESSAGE_APPLICATION_FILE_MESSAGE_ID`\n            FOREIGN KEY (`message_id`) REFERENCES `message_application` (`message_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$resource = new Acl_Model_Resource();
$resource->find("editor_settings", "code");
if ($resource_id = $resource->getId()) {
    $data = array("parent_id" => $resource_id, "code" => "editor_settings_messages", "label" => "Access the editor messages", "url" => "message/application/*");
    $resource = new Acl_Model_Resource();
    $resource->find("editor_settings_messages", "code");
    $resource->addData($data)->save();
}
示例#21
0
<?php

$features = array('Magento' => array('icon_path' => '/magento/magento1.png', 'datas' => array('code' => 'magento', 'name' => 'Magento', 'model' => 'Weblink_Model_Type_Mono', 'desktop_uri' => 'weblink/application_magento/', 'mobile_uri' => 'weblink/mobile_mono/', 'only_once' => 0, 'is_ajax' => 0, 'position' => 155)), 'WooCommerce' => array('icon_path' => '/woocommerce/woocommerce1.png', 'datas' => array('code' => 'woocommerce', 'name' => 'WooCommerce', 'model' => 'Weblink_Model_Type_Mono', 'desktop_uri' => 'weblink/application_woocommerce/', 'mobile_uri' => 'weblink/mobile_mono/', 'only_once' => 0, 'is_ajax' => 0, 'position' => 155)), 'Prestashop' => array('icon_path' => '/prestashop/prestashop1.png', 'datas' => array('code' => 'prestashop', 'name' => 'Prestashop', 'model' => 'Weblink_Model_Type_Mono', 'desktop_uri' => 'weblink/application_prestashop/', 'mobile_uri' => 'weblink/mobile_mono/', 'only_once' => 0, 'is_ajax' => 0, 'position' => 155)), 'Volusion' => array('icon_path' => '/volusion/volusion1.png', 'datas' => array('code' => 'volusion', 'name' => 'Volusion', 'model' => 'Weblink_Model_Type_Mono', 'desktop_uri' => 'weblink/application_volusion/', 'mobile_uri' => 'weblink/mobile_mono/', 'only_once' => 0, 'is_ajax' => 0, 'position' => 155)), 'Shopify' => array('icon_path' => '/shopify/shopify1.png', 'datas' => array('code' => 'shopify', 'name' => 'Shopify', 'model' => 'Weblink_Model_Type_Mono', 'desktop_uri' => 'weblink/application_shopify/', 'mobile_uri' => 'weblink/mobile_mono/', 'only_once' => 0, 'is_ajax' => 0, 'position' => 155)));
$resource = new Acl_Model_Resource();
$resource->find("feature", "code");
$resource_id = $resource->getId();
foreach ($features as $feature_name => $feature) {
    $library = new Media_Model_Library();
    $library->setName($feature_name)->save();
    $datas = array('library_id' => $library->getId(), 'link' => $feature['icon_path'], 'can_be_colorized' => 1);
    $image = new Media_Model_Library_Image();
    $image->setData($datas)->save();
    $icon_id = $image->getId();
    $datas = $feature['datas'];
    $datas['library_id'] = $library->getId();
    $datas['icon_id'] = $icon_id;
    $option = new Application_Model_Option();
    $option->setData($datas)->save();
    if ($resource_id) {
        $data = array("parent_id" => $resource_id, "code" => "feature_" . $feature['datas']['code'], "label" => $feature_name, "url" => $feature['datas']['desktop_uri']);
        $resource = new Acl_Model_Resource();
        $resource->find("feature_" . $feature['datas']['code'], "code");
        $resource->addData($data)->save();
    }
}