Controller/Component/Auth/MtSitesAuthorize.php
public function authorize($user, CakeRequest $request) {
                //sesion expiro
                if( empty( $user['id'] ) ){
                       return false;
                }

                //si es admin general esta autorizado
                if(array_key_exists('is_admin', $user) && $user['is_admin']) {
                        return true;
                }


                // si es pantalla de instalacion de nuevo tenant
                if ( $request->params['plugin'] == 'mt_sites' && $request->params['controller'] == 'sites' && $request->params['action'] == 'install'){
                    return true;
                }

                if ( $request->params['plugin'] == 'install' && $request->params['controller'] == 'configurations' && $request->params['action'] == 'first_configuration_wizard'){
                    return true;
                }
                
                if ( !array_key_exists('tenant', $request->params) && empty($request->params['tenant']) ){
                        // es pagina global. O sea, no estoy dentro del tenant
                       // debug( $request->params );
                        if ( $request->params['action'] == 'display' ) {
                      return true;
                        }
            }
               

                if ( !array_key_exists('Site', $user) ) {
                    // el usuario no tiene sitios asignados. No puede entrar a ningun lado
                    return false;   
                }



                // listar sitios del la variable de sesion del usuario actual
                $siteAlias = Hash::extract( $user['Site'], '{n}.alias' );
                if ( array_key_exists('tenant', $request->params) && in_array( $request->params['tenant'], $siteAlias ) ) {
                    // si el usuario tiene, entre sus sitios al sitio actual, entonces esta autorizado                      
                    return true;
                }

                // acceso a la pagina de edicion y de cambio de contraseña propia de cada usuario registrado y logueado. 
                if (  (strtolower($request->params['controller']) ==  "users" 
                        && strtolower($request->params['action']) == 'my_edit') 
                    or (strtolower($request->params['controller']) ==  "users" 
                        && strtolower($request->params['action']) == 'change_password') ){
                      //Si el controlador es users y el action es my_edit o change_password te dejara entrar siempre que estes logeado.
                      return true;
                }


		return false;
	}
public function authorize($user, CakeRequest $request) {
                //sesion expiro
                if( empty( $user['id'] ) ){
                       return false;
                }

                //si es admin general esta autorizado
                if(array_key_exists('is_admin', $user) && $user['is_admin']) {
                        return true;
                }


                // si es pantalla de instalacion de nuevo tenant
                if ( $request->params['plugin'] == 'mt_sites' && $request->params['controller'] == 'sites' && $request->params['action'] == 'install'){
                    return true;
                }

                if ( $request->params['plugin'] == 'install' && $request->params['controller'] == 'configurations' && $request->params['action'] == 'first_configuration_wizard'){
                    return true;
                }
                
                if ( !array_key_exists('tenant', $request->params) && empty($request->params['tenant']) ){
                        // es pagina global. O sea, no estoy dentro del tenant
                       // debug( $request->params );
                        if ( $request->params['action'] == 'display' ) {
                      return true;
                        }
            }
               

                if ( !array_key_exists('Site', $user) ) {
                    // el usuario no tiene sitios asignados. No puede entrar a ningun lado
                    return false;   
                }



                // listar sitios del la variable de sesion del usuario actual
                $siteAlias = Hash::extract( $user['Site'], '{n}.alias' );
                if ( array_key_exists('tenant', $request->params) && in_array( $request->params['tenant'], $siteAlias ) ) {
                    // si el usuario tiene, entre sus sitios al sitio actual, entonces esta autorizado                      
                    return true;
                }

                // acceso a la pagina de edicion y de cambio de contraseña propia de cada usuario registrado y logueado. 
                if (  (strtolower($request->params['controller']) ==  "users" 
                        && strtolower($request->params['action']) == 'my_edit') 
                    or (strtolower($request->params['controller']) ==  "users" 
                        && strtolower($request->params['action']) == 'change_password') ){
                      //Si el controlador es users y el action es my_edit o change_password te dejara entrar siempre que estes logeado.
                      return true;
                }


		return false;
	}
public function authorize ( $ user , CakeRequest $ request ) { //sesion expiro if ( empty ( $ user [ 'id' ] ) ) { return false ; } //si es admin general esta autorizado if ( array_key_exists ( 'is_admin' , $ user ) && $ user [ 'is_admin' ] ) { return true ; } // si es pantalla de instalacion de nuevo tenant if ( $ request -> params [ 'plugin' ] == 'mt_sites' && $ request -> params [ 'controller' ] == 'sites' && $ request -> params [ 'action' ] == 'install' ) { return true ; } if ( $ request -> params [ 'plugin' ] == 'install' && $ request -> params [ 'controller' ] == 'configurations' && $ request -> params [ 'action' ] == 'first_configuration_wizard' ) { return true ; } if ( ! array_key_exists ( 'tenant' , $ request -> params ) && empty ( $ request -> params [ 'tenant' ] ) ) { // es pagina global. O sea, no estoy dentro del tenant // debug( $request->params ); if ( $ request -> params [ 'action' ] == 'display' ) { return true ; } } if ( ! array_key_exists ( 'Site' , $ user ) ) { // el usuario no tiene sitios asignados. No puede entrar a ningun lado return false ; } // listar sitios del la variable de sesion del usuario actual $ siteAlias = Hash :: extract ( $ user [ 'Site' ] , '{n}.alias' ) ; if ( array_key_exists ( 'tenant' , $ request -> params ) && in_array ( $ request -> params [ 'tenant' ] , $ siteAlias ) ) { // si el usuario tiene, entre sus sitios al sitio actual, entonces esta autorizado                       return true ; } // acceso a la pagina de edicion y de cambio de contraseña propia de cada usuario registrado y logueado.  if ( ( strtolower ( $ request -> params [ 'controller' ] ) == "users" && strtolower ( $ request -> params [ 'action' ] ) == 'my_edit' ) or ( strtolower ( $ request -> params [ 'controller' ] ) == "users" && strtolower ( $ request -> params [ 'action' ] ) == 'change_password' ) ) { //Si el controlador es users y el action es my_edit o change_password te dejara entrar siempre que estes logeado. return true ; } return false ; }
Checks user authorization using a controller callback.

@param array $user Active user data
@param CakeRequest $request Request instance.
@return bool
Checks user authorization using a controller callback .