Browse Source

FD3-53 ROLES para stats

Guillermo Espinoza 7 năm trước cách đây
mục cha
commit
ed0bb46cc0
5 tập tin đã thay đổi với 116 bổ sung124 xóa
  1. 2 0
      app/config/config.yml
  2. 62 10
      app/config/security.yml
  3. 21 21
      composer.json
  4. 8 70
      composer.lock
  5. 23 23
      src/StatsBundle/Resources/config/services.yml

+ 2 - 0
app/config/config.yml

@@ -110,3 +110,5 @@ sonata_admin:
         user_block: BaseOAuthClientBundle:Core:oauth_user_block.html.twig
         list: BaseAdminBundle::standard_list.html.twig
     persist_filters: true
+    security:
+        handler: sonata.admin.security.handler.role

+ 62 - 10
app/config/security.yml

@@ -1,13 +1,65 @@
 security:
-    
+
     providers:
         oauth:
             id: base_oauth_bundle.oauth_user_provider
-    
+
     role_hierarchy:
-        ROLE_ADMIN: [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
-        ROLE_SUPER_ADMIN: ROLE_ADMIN
-            
+
+        # STATS_DEVICE_SERVER
+        ROLE_SONATA_STATS_DEVICE_SERVER_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_LIST, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_VIEW]
+        ROLE_SONATA_STATS_DEVICE_SERVER_EDITOR: [ROLE_SONATA_STATS_DEVICE_SERVER_READER, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_CREATE, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_EDIT]
+        ROLE_SONATA_STATS_DEVICE_SERVER_ADMIN: [ROLE_SONATA_STATS_DEVICE_SERVER_EDITOR, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_DELETE, ROLE_SONATA_ADMIN_STATS_DEVICE_SERVER_EXPORT]
+
+        # STATS_DEVICE
+        ROLE_SONATA_STATS_DEVICE_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_DEVICE_LIST, ROLE_SONATA_ADMIN_STATS_DEVICE_VIEW]
+        ROLE_SONATA_STATS_DEVICE_EDITOR: [ROLE_SONATA_STATS_DEVICE_READER, ROLE_SONATA_ADMIN_STATS_DEVICE_CREATE, ROLE_SONATA_ADMIN_STATS_DEVICE_EDIT]
+        ROLE_SONATA_STATS_DEVICE_ADMIN: [ROLE_SONATA_STATS_DEVICE_EDITOR, ROLE_SONATA_ADMIN_STATS_DEVICE_DELETE, ROLE_SONATA_ADMIN_STATS_DEVICE_EXPORT]
+
+        # STATS_ONU
+        ROLE_SONATA_STATS_ONU_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_ONU_LIST, ROLE_SONATA_ADMIN_STATS_ONU_VIEW]
+        ROLE_SONATA_STATS_ONU_EDITOR: [ROLE_SONATA_STATS_ONU_READER, ROLE_SONATA_ADMIN_STATS_ONU_CREATE, ROLE_SONATA_ADMIN_STATS_ONU_EDIT]
+        ROLE_SONATA_STATS_ONU_ADMIN: [ROLE_SONATA_STATS_ONU_EDITOR, ROLE_SONATA_ADMIN_STATS_ONU_DELETE, ROLE_SONATA_ADMIN_STATS_ONU_EXPORT]
+
+        # STATS_PON_PORT
+        ROLE_SONATA_STATS_PON_PORT_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_PON_PORT_LIST, ROLE_SONATA_ADMIN_STATS_PON_PORT_VIEW]
+        ROLE_SONATA_STATS_PON_PORT_EDITOR: [ROLE_SONATA_STATS_PON_PORT_READER, ROLE_SONATA_ADMIN_STATS_PON_PORT_CREATE, ROLE_SONATA_ADMIN_STATS_PON_PORT_EDIT]
+        ROLE_SONATA_STATS_PON_PORT_ADMIN: [ROLE_SONATA_STATS_PON_PORT_EDITOR, ROLE_SONATA_ADMIN_STATS_PON_PORT_DELETE, ROLE_SONATA_ADMIN_STATS_PON_PORT_EXPORT]
+
+        # STATS_OLT
+        ROLE_SONATA_STATS_OLT_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_OLT_LIST, ROLE_SONATA_ADMIN_STATS_OLT_VIEW]
+        ROLE_SONATA_STATS_OLT_EDITOR: [ROLE_SONATA_STATS_OLT_READER, ROLE_SONATA_ADMIN_STATS_OLT_CREATE, ROLE_SONATA_ADMIN_STATS_OLT_EDIT]
+        ROLE_SONATA_STATS_OLT_ADMIN: [ROLE_SONATA_STATS_OLT_EDITOR, ROLE_SONATA_ADMIN_STATS_OLT_DELETE, ROLE_SONATA_ADMIN_STATS_OLT_EXPORT]
+
+        # STATS_CABLEMODEM
+        ROLE_SONATA_STATS_CABLEMODEM_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_LIST, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_VIEW]
+        ROLE_SONATA_STATS_CABLEMODEM_EDITOR: [ROLE_SONATA_STATS_CABLEMODEM_READER, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_CREATE, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_EDIT]
+        ROLE_SONATA_STATS_CABLEMODEM_ADMIN: [ROLE_SONATA_STATS_CABLEMODEM_EDITOR, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_DELETE, ROLE_SONATA_ADMIN_STATS_CABLEMODEM_EXPORT]
+
+        # STATS_CMTS_INTERFACE
+        ROLE_SONATA_STATS_CMTS_INTERFACE_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_LIST, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_VIEW]
+        ROLE_SONATA_STATS_CMTS_INTERFACE_EDITOR: [ROLE_SONATA_STATS_CMTS_INTERFACE_READER, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_CREATE, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_EDIT]
+        ROLE_SONATA_STATS_CMTS_INTERFACE_ADMIN: [ROLE_SONATA_STATS_CMTS_INTERFACE_EDITOR, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_DELETE, ROLE_SONATA_ADMIN_STATS_CMTS_INTERFACE_EXPORT]
+
+        # STATS_CMTS
+        ROLE_SONATA_STATS_CMTS_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_STATS_CMTS_LIST, ROLE_SONATA_ADMIN_STATS_CMTS_VIEW]
+        ROLE_SONATA_STATS_CMTS_EDITOR: [ROLE_SONATA_STATS_CMTS_READER, ROLE_SONATA_ADMIN_STATS_CMTS_CREATE, ROLE_SONATA_ADMIN_STATS_CMTS_EDIT]
+        ROLE_SONATA_STATS_CMTS_ADMIN: [ROLE_SONATA_STATS_CMTS_EDITOR, ROLE_SONATA_ADMIN_STATS_CMTS_DELETE, ROLE_SONATA_ADMIN_STATS_CMTS_EXPORT]
+
+        # WORKFLOW
+        ROLE_SONATA_WORKFLOW_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_WORKFLOW_LIST, ROLE_SONATA_ADMIN_WORKFLOW_VIEW]
+        ROLE_SONATA_WORKFLOW_EDITOR: [ROLE_SONATA_WORKFLOW_READER, ROLE_SONATA_ADMIN_WORKFLOW_CREATE, ROLE_SONATA_ADMIN_WORKFLOW_EDIT]
+        ROLE_SONATA_WORKFLOW_ADMIN: [ROLE_SONATA_WORKFLOW_EDITOR, ROLE_SONATA_ADMIN_WORKFLOW_DELETE, ROLE_SONATA_ADMIN_WORKFLOW_EXPORT]
+
+        # ACTION
+        ROLE_SONATA_ACTION_READER: [ROLE_ADMIN, ROLE_SONATA_ADMIN_ACTION_LIST, ROLE_SONATA_ADMIN_ACTION_VIEW]
+        ROLE_SONATA_ACTION_EDITOR: [ROLE_SONATA_ACTION_READER, ROLE_SONATA_ADMIN_ACTION_CREATE, ROLE_SONATA_ADMIN_ACTION_EDIT]
+        ROLE_SONATA_ACTION_ADMIN: [ROLE_SONATA_ACTION_EDITOR, ROLE_SONATA_ADMIN_ACTION_DELETE, ROLE_SONATA_ADMIN_ACTION_EXPORT]
+
+        ROLE_ADMIN_TENANCIES: ROLE_ADMIN_TENANCIES
+        ROLE_ADMIN: [ROLE_USER, ROLE_SONATA_ADMIN]
+        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_USER_CREATE, ROLE_ADMIN_TENANCIES, ROLE_ALLOWED_TO_SWITCH]
+
     firewalls:
         dev:
             # es una llave que se utiliza para guardar y traer los datos de la session. Los firewalls que posean
@@ -16,7 +68,7 @@ security:
             stateless: false
             pattern: ^/(_(profiler|wdt)|css|images|js)/
             security: false
-        
+
         api:
             # es una llave que se utiliza para guardar y traer los datos de la session. Los firewalls que posean
             # el mismo context, van a compartir la informacion. PARA QUE FUNCION "stateless" debe estar en FALSE
@@ -25,7 +77,7 @@ security:
             pattern: ^/api
             stateless: true
             oauth_proxy: true
-            
+
         secured_area:
             # es una llave que se utiliza para guardar y traer los datos de la session. Los firewalls que posean
             # el mismo context, van a compartir la informacion. PARA QUE FUNCION "stateless" debe estar en FALSE
@@ -37,7 +89,7 @@ security:
                 target: /
                 success_handler: base_admin.security.logout.handler
             anonymous: true
-            
+
             # HWIOAuthBundle + BaseOAuthBundle Configuration
             oauth:
                 login_path: /login
@@ -47,8 +99,8 @@ security:
                     login: /login_check
                 oauth_user_provider:
                     service: base_oauth_bundle.oauth_user_provider
-                    
+
     access_control:
         - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
         - { path: ^/admin/, role: ROLE_ADMIN }
-        - { path: ^/api, role: ROLE_USER }
+        - { path: ^/api, role: ROLE_USER }

+ 21 - 21
composer.json

@@ -184,27 +184,27 @@
         "doctrine/doctrine-migrations-bundle": "^1.2",
         "doctrine/orm": "^2.5",
         "jdorn/sql-formatter": "~1.2.17",
-        "ik/audit-bundle": "v0.1.7",
-        "ik/auth-bundle": "v0.1.7",
-        "ik/base-admin-bundle": "v0.1.7",
-        "ik/device-bundle": "v0.1.7",
-        "ik/extra-data-bundle": "v0.1.7",
-        "ik/leaflet-bundle": "v0.1.7",
-        "ik/migrations-bundle": "v0.1.7",
-        "ik/oauthclient-bundle": "v0.1.7",
-        "ik/owner-voter-bundle": "v0.1.7",
-        "ik/redis-bundle": "v0.1.7",
-        "ik/stats/base-stats-bundle": "v0.1.7",
-        "ik/stats/fiberhome-bundle": "v0.1.7",
-        "ik/stats/geoserver-bundle": "v0.1.7",
-        "ik/stats/huawei-bundle": "v0.1.7",
-        "ik/stats/fiberlink-bundle": "v0.1.7",
-        "ik/stats/zte-bundle": "v0.1.7",
-        "ik/statsd-bundle": "v0.1.7",
-        "ik/webservice-bundle": "v0.1.7",
-        "ik/workflow-bundle": "v0.1.7",
-        "ik/stats/nas-bundle": "v0.1.7",
-        "ik/stats/cmts-bundle": "v0.1.7",
+        "ik/audit-bundle": "dev-master",
+        "ik/auth-bundle": "dev-master",
+        "ik/base-admin-bundle": "dev-master",
+        "ik/device-bundle": "dev-master",
+        "ik/extra-data-bundle": "dev-master",
+        "ik/leaflet-bundle": "dev-master",
+        "ik/migrations-bundle": "dev-master",
+        "ik/oauthclient-bundle": "dev-master",
+        "ik/owner-voter-bundle": "dev-master",
+        "ik/redis-bundle": "dev-master",
+        "ik/stats/base-stats-bundle": "dev-master",
+        "ik/stats/fiberhome-bundle": "dev-master",
+        "ik/stats/geoserver-bundle": "dev-master",
+        "ik/stats/huawei-bundle": "dev-master",
+        "ik/stats/fiberlink-bundle": "dev-master",
+        "ik/stats/zte-bundle": "dev-master",
+        "ik/statsd-bundle": "dev-master",
+        "ik/webservice-bundle": "dev-master",
+        "ik/workflow-bundle": "dev-master",
+        "ik/stats/nas-bundle": "dev-master",
+        "ik/stats/cmts-bundle": "dev-master",
         "incenteev/composer-parameter-handler": "^2.0",
         "jms/serializer": "^1.9.0",
         "jms/serializer-bundle": "^1.5.0",

+ 8 - 70
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "5cb1ba1ca712a546481afa060bff24e2",
+    "content-hash": "8f676b92b712fa5a4624cf7d4bf311c2",
     "packages": [
         {
             "name": "behat/transliterator",
@@ -1463,7 +1463,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@infra.flowdat.com:222/VendorSoftwareFlowdat3/ExtraDataBundle.git",
-                "reference": "82c6272f66c9ceaffb3e3f3e72ed3c949cf0e3eb"
+                "reference": "47473cde04aa24d659598a1661a89015376cfe16"
             },
             "type": "library",
             "autoload": {
@@ -1478,7 +1478,7 @@
                 "bundle",
                 "extra-data"
             ],
-            "time": "2018-02-19T12:24:33+00:00"
+            "time": "2018-04-03T12:13:19+00:00"
         },
         {
             "name": "ik/leaflet-bundle",
@@ -1814,7 +1814,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/WorkflowBundle.git",
-                "reference": "9c70562562d4513c38873c958d588f5bedf5fda0"
+                "reference": "a30d064ede0bb044ee8ec57d6c0d3812f051699f"
             },
             "require": {
                 "php-amqplib/rabbitmq-bundle": "^1.12"
@@ -1844,7 +1844,7 @@
                 "bundle",
                 "workflow"
             ],
-            "time": "2018-02-19T13:50:00+00:00"
+            "time": "2018-04-04T13:14:19+00:00"
         },
         {
             "name": "incenteev/composer-parameter-handler",
@@ -4093,68 +4093,6 @@
             ],
             "time": "2015-12-28T13:12:39+00:00"
         },
-        {
-            "name": "symfony/lock",
-            "version": "v3.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/lock.git",
-                "reference": "d7b8a52eed987bfa163aba175f3192dda07f120c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://satis.infra.flowdat.com/dist/symfony/lock/symfony-lock-d7b8a52eed987bfa163aba175f3192dda07f120c-zip-d8ce16.zip",
-                "reference": "d7b8a52eed987bfa163aba175f3192dda07f120c",
-                "shasum": "576d56e6a7cfb89d5a19d6174803fb2c23d95ca5"
-            },
-            "require": {
-                "php": "^5.5.9|>=7.0.8",
-                "psr/log": "~1.0",
-                "symfony/polyfill-php70": "~1.0"
-            },
-            "require-dev": {
-                "predis/predis": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Lock\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                },
-                {
-                    "name": "Jérémy Derussé",
-                    "email": "jeremy@derusse.com"
-                }
-            ],
-            "description": "Symfony Lock Component",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "cas",
-                "flock",
-                "locking",
-                "mutex",
-                "redlock",
-                "semaphore"
-            ],
-            "time": "2017-11-22T12:18:49+00:00"
-        },
         {
             "name": "symfony/monolog-bundle",
             "version": "v3.1.0",
@@ -6553,16 +6491,16 @@
         "ik/owner-voter-bundle": 20,
         "ik/redis-bundle": 20,
         "ik/stats/base-stats-bundle": 20,
-        "ik/stats/cmts-bundle": 20,
         "ik/stats/fiberhome-bundle": 20,
-        "ik/stats/fiberlink-bundle": 20,
         "ik/stats/geoserver-bundle": 20,
         "ik/stats/huawei-bundle": 20,
-        "ik/stats/nas-bundle": 20,
+        "ik/stats/fiberlink-bundle": 20,
         "ik/stats/zte-bundle": 20,
         "ik/statsd-bundle": 20,
         "ik/webservice-bundle": 20,
         "ik/workflow-bundle": 20,
+        "ik/stats/nas-bundle": 20,
+        "ik/stats/cmts-bundle": 20,
         "opensolutions/oss-snmp": 20,
         "sonata-project/admin-bundle": 20,
         "voryx/restgeneratorbundle": 20

+ 23 - 23
src/StatsBundle/Resources/config/services.yml

@@ -1,81 +1,81 @@
 services:
-    
-    stats.admin.device_server:
+
+    sonata.admin.stats.device_server:
         class: StatsBundle\Admin\DeviceServerAdmin
         arguments: [~, StatsBundle\Entity\DeviceServer, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: Stats, label: DeviceServer, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
 
-    stats.admin.device:
+    sonata.admin.stats.device:
         class: StatsBundle\Admin\DeviceAdmin
         arguments: [~, StatsBundle\Entity\Device, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: Stats, label: Device, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
             - [setTemplate, ['show','StatsBundle:Device:show.html.twig']]
 
     stats.device.manager:
         class: StatsBundle\Services\DeviceManager
         arguments: ['@doctrine.orm.entity_manager','@validator','@webservice']
-    
-    stats.admin.onu:
+
+    sonata.admin.stats.onu:
         class: StatsBundle\Admin\OnuAdmin
         arguments: [~, StatsBundle\Entity\Onu, StatsBundle:OnuCRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: ONU, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
             - [setTemplate, ['show','StatsBundle:Onu:base_show.html.twig']]
             - [setTemplate, ['outer_list_rows_list','StatsBundle:Templates:list_outer_rows_list.html.twig']]
-    
-    stats.admin.pon_port:
+
+    sonata.admin.stats.pon_port:
         class: StatsBundle\Admin\PonPortAdmin
         arguments: [~, StatsBundle\Entity\PonPort, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: PonPort, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
             - [setTemplate, ['show','StatsBundle:PonPort:base_show.html.twig']]
             - [setTemplate, ['list','StatsBundle:PonPort:base_list.html.twig']]
-    
+
     stats.report.manager:
         class: StatsBundle\Services\ReportManager
         arguments: ['@doctrine.orm.entity_manager','@validator','@webservice']
 
-    stats.admin.olt:
+    sonata.admin.stats.olt:
         class: StatsBundle\Admin\OltAdmin
         arguments: [~, StatsBundle\Entity\Device, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: OLT, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
-            
-    stats.admin.cablemodem:
+
+    sonata.admin.stats.cablemodem:
         class: StatsBundle\Admin\CablemodemAdmin
         arguments: [~, StatsBundle\Entity\Cablemodem, StatsBundle:CablemodemCRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: Cablemodem, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
             - [setTemplate, ['outer_list_rows_list','StatsBundle:Templates:list_outer_rows_list.html.twig']]
             - [setTemplate, ['show','StatsBundle:Cablemodem:base_show.html.twig']]
 
-    stats.admin.cmts_interface:
+    sonata.admin.stats.cmts_interface:
         class: StatsBundle\Admin\CmtsInterfaceAdmin
         arguments: [~, StatsBundle\Entity\CmtsInterface, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: Interface, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [StatsBundle]]
             - [setTemplate, ['show','StatsBundle:CmtsInterface:base_show.html.twig']]
-    
-    stats.admin.cmts:
+
+    sonata.admin.stats.cmts:
         class: StatsBundle\Admin\CmtsAdmin
         arguments: [~, StatsBundle\Entity\Device, SonataAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: List, label: CMTS, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
-            - [setTranslationDomain, [StatsBundle]]
+        calls:
+            - [setTranslationDomain, [StatsBundle]]