gabriel 6 år sedan
förälder
incheckning
449e5a0a71

+ 22 - 0
app/AppKernel.php

@@ -2,6 +2,9 @@
 
 use Symfony\Component\HttpKernel\Kernel;
 use Symfony\Component\Config\Loader\LoaderInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+
 
 class AppKernel extends Kernel
 {
@@ -77,4 +80,23 @@ class AppKernel extends Kernel
     {
         $loader->load($this->getRootDir() . '/config/config_' . $this->getEnvironment() . '.yml');
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
+    {
+        if (false === $this->booted) {
+            $this->boot();
+        }
+        // se puede sacar la variable nginx-proxy porque es el nombre del docker y puede variar
+        // con REMOTRA_ADDR obtengo el mismo valor (http://symfony.com/doc/current/deployment/proxies.html)
+        //gethostbyname("nginx-proxy") == $request->server->get('REMOTE_ADDR')
+        if ($this->container->hasParameter("nginx_name")) {
+            Request::setTrustedProxies(
+                array('127.0.0.1', $this->container->getParameter("nginx_name")),
+                Request::HEADER_X_FORWARDED_FOR);
+        }
+        return parent::handle($request, $type, $catch);
+    }
 }

+ 1 - 0
app/config/config.yml

@@ -111,6 +111,7 @@ sonata_admin:
     templates:
         layout: BaseAdminBundle::standard_layout.html.twig
         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

+ 10 - 5
app/config/config_dev.yml

@@ -21,14 +21,19 @@ web_profiler:
 monolog:
     handlers:
         main:
-            type: stream
-            path: "%kernel.logs_dir%/%kernel.environment%.log"
+            type:         group
+            action_level: error
+            members:      [nested, amqp]
+        nested:
+            type:  stream
+            path:  "%kernel.logs_dir%/%kernel.environment%.log"
             level: debug
-            channels: [!event]
-            formatter : backtrace_formatter
+        amqp:
+            type:               service
+            id:                 monolog.amqp
+            level:              debug
         console:
             type:   console
-            channels: [!event, !doctrine]
         # uncomment to get logging in your browser
         # you may have to allow bigger header sizes in your Web server configuration
         #firephp:

+ 7 - 6
app/config/config_prod.yml

@@ -14,15 +14,16 @@ monolog:
         main:
             type:         fingers_crossed
             action_level: error
-            handler:      nested
+            handler:      grouped
+        grouped:
+            type:         group
+            members:      [nested, amqp]
         nested:
             type:  stream
             path:  "%kernel.logs_dir%/%kernel.environment%.log"
             level: debug
-        console:
-            type:  console
         amqp:
-            type: service
-            id: monolog.amqp
-            level: debug
+            type:               service
+            id:                 monolog.amqp
+            level:              debug
             channels: ['devicelog', 'webservice']

+ 3 - 0
app/config/parameters.yml.docker

@@ -40,3 +40,6 @@ parameters:
     cookie_domain_client: '%env(CLIENT)%'
     cookie_domain: '%cookie_domain_client%.%env(DOMAIN)%'
     session_names: [flowdat_base_session, flowdat_ftth_session, flowdat_mapas_session, flowdat_stats_session, flowdat_radius_session, flowdat_cablemodem_session]
+
+    # nombre del servicio del nginx
+    nginx_name: nginx-proxy

+ 20 - 6
app/config/security.yml

@@ -5,19 +5,33 @@ security:
     providers:
         oauth:
             id: base_oauth_bundle.oauth_user_provider
-
-    firewalls:
-
+    role_hierarchy:
+        ROLE_ADMIN: [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
+        ROLE_SUPER_ADMIN: ROLE_ADMIN
+            
+    firewalls:       
         dev:
+            # 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
+            context: ik_share
+            stateless: false
             pattern: ^/(_(profiler|wdt)|css|images|js)/
             security: false
 
         api:
-          pattern: ^/api
-          stateless: true
-          oauth_proxy: true
+            # 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
+            context: ik_share
+            stateless: false
+            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
+            context: ik_share
+            stateless: false
             pattern: ^/
             logout:
                 path:   /logout

+ 1 - 0
app/config/services.yml

@@ -7,3 +7,4 @@ services:
 #    service_name:
 #        class: AppBundle\Directory\ClassName
 #        arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
+

+ 1 - 1
composer.json

@@ -128,7 +128,7 @@
         "dwoo/dwoo": "dev-master",
         "hwi/oauth-bundle": "^0.5.3",
         "ik/audit-bundle": "dev-master",
-        "ik/auth-bundle": "dev-master",
+        "ik/auth-bundle": "dev-FD3-284",
         "ik/base-admin-bundle": "dev-master",
         "ik/device-bundle": "dev-master",
         "ik/extra-data-bundle": "dev-master",

+ 1 - 1
composer.lock

@@ -1430,7 +1430,7 @@
         },
         {
             "name": "ik/auth-bundle",
-            "version": "dev-master",
+            "version": "dev-FD3-284",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/AuthBundle.git",

+ 4 - 5
src/RadiusBundle/Controller/AccessRESTController.php

@@ -2,15 +2,14 @@
 
 namespace RadiusBundle\Controller;
 
+use FOS\RestBundle\Controller\Annotations\RouteResource;
 use FOS\RestBundle\Controller\Annotations\View;
 use FOS\RestBundle\Util\Codes;
-use MapBundle\Entity\Location;
-use RadiusBundle\Entity\Access;
+use FOS\RestBundle\View\View as FOSView;
 use RadiusBundle\Form\AccessType;
-use FOS\RestBundle\Controller\Annotations\RouteResource;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 use WebserviceBundle\Controller\RESTController;
-use FOS\RestBundle\View\View as FOSView;
 use FOS\RestBundle\Controller\Annotations as Rest;
 
 /**
@@ -134,4 +133,4 @@ class AccessRESTController extends RESTController
         }
         return $idLocation;
     }
-}
+}

+ 13 - 11
src/RadiusBundle/Form/AccessType.php

@@ -6,8 +6,14 @@ use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\FormBuilderInterface;
 use Symfony\Component\OptionsResolver\OptionsResolver;
 
+use Symfony\Component\Form\Extension\Core\Type\TextType;
+
+use Symfony\Component\Form\FormEvent;
+use Symfony\Component\Form\FormEvents;
+
 class AccessType extends AbstractType
 {
+
     protected $webservice = null;
 
     public function setWebService($ws)
@@ -27,17 +33,13 @@ class AccessType extends AbstractType
      */
     public function buildForm(FormBuilderInterface $builder, array $options)
     {
-        $builder
-            ->add('id')
-            ->add('profile')
-            ->add('clientId')
-            ->add('name')
-            ->add('password')
-            ->add('static_ip')
-            ->add('comments')
-            ->add('location')
-            ->add('extraData')
-            ->add('tenancyId');
+        $builder->add('id')
+		->add('profile')
+		->add('clientId')
+        ->add('name')
+        ->add('password')
+        ->add('static_ip') 
+        ->add('tenancyId');
     }
 
     /**