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'); }
/** * 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(); }
/** * 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; }
/** * 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(); } } } } }
<?php $weather_resource = new Acl_Model_Resource(); $weather_resource->find("weather", "code"); if ($weather_resource->getId()) { $weather_resource->setCode("feature_weather")->setLabel("Weather")->save(); }
<?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(); }
<?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(); } } }
<?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; }
<?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");
/** * 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; }
<?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(); }
<?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(); } }
<?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(); }
<?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(); } }