コード例 #1
0
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $userGroupSid = SJB_Request::getVar('user_group_sid', false);
     $productType = SJB_Request::getVar('product_type', false);
     $permissions_type = SJB_Request::getVar('permissions_type', 'additional');
     $addedPermissions = false;
     $role = SJB_Request::getVar('role', false);
     $type = 'product';
     $acl = SJB_Acl::getInstance(true);
     $resources = $acl->getResources($type);
     $product = new SJB_Product(array(), $productType);
     $additionalPermissions = $product->getAdditionalPermissions();
     $accessPermissions = $product->getAccessPermissions();
     $perms = SJB_DB::query('select * from `permissions` where `type` = ?s and `role` = ?s', $type, $role);
     $countGeneralPermissions = 0;
     foreach ($resources as $key => $resource) {
         switch ($permissions_type) {
             case 'additional':
                 if (!in_array($key, $additionalPermissions)) {
                     unset($resources[$key]);
                     continue;
                 }
                 break;
             case 'access':
                 if (!in_array($key, $accessPermissions)) {
                     unset($resources[$key]);
                     continue;
                 }
                 break;
         }
         $resources[$key]['value'] = 'inherit';
         $resources[$key]['name'] = $key;
         foreach ($perms as $perm) {
             if ($key == $perm['name']) {
                 $resources[$key]['value'] = $perm['value'];
                 $resources[$key]['params'] = $perm['params'];
                 $resources[$key]['message'] = $perm['message'];
                 break;
             }
         }
         if (!empty($addedPermissions[$key])) {
             $params = isset($addedPermissions[$key . '_params']) ? $addedPermissions[$key . '_params'] : '';
             $params1 = isset($addedPermissions[$key . '_params1']) ? $addedPermissions[$key . '_params1'] : '';
             $message = isset($addedPermissions[$key . '_message']) ? $addedPermissions[$key . '_message'] : '';
             if ($addedPermissions[$key] == 'deny' && $params1) {
                 $params = $params1;
             }
             $resources[$key]['value'] = $addedPermissions[$key];
             $resources[$key]['params'] = $params;
             $resources[$key]['message'] = $message;
         }
         if (isset($resources[$key]['group']) && $resources[$key]['group'] == 'general') {
             $countGeneralPermissions++;
         }
     }
     $tp->assign('countGeneralPermissions', $countGeneralPermissions);
     $tp->assign('resources', $resources);
     $tp->assign('listingTypes', SJB_ListingTypeManager::getAllListingTypesInfo());
     $tp->assign('role', $role);
     $tp->assign('type', $type);
     $tp->assign('user_group_sid', $userGroupSid);
     $tp->display('product_permissions.tpl');
 }