Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Joomla »

Problema al crear plugin de autenticación en Joomla 1.5

Estas en el tema de Problema al crear plugin de autenticación en Joomla 1.5 en el foro de Joomla en Foros del Web. Hola a todos! Qué tal? He revisado acerca de manuales para crear plugins en joomla pero no hay mucha documentación acerca de crear plugins de ...
  #1 (permalink)  
Antiguo 20/04/2009, 10:42
Avatar de oswalgogra  
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 17 años, 2 meses
Puntos: 5
De acuerdo Problema al crear plugin de autenticación en Joomla 1.5

Hola a todos! Qué tal?

He revisado acerca de manuales para crear plugins en joomla pero no hay mucha documentación acerca de crear plugins de autenticación, ya que para el proyecto en el cual estoy trabajado necesito modificar la forma de auntenticar a los usuarios.

Tomé de ejemplo el plugin de autenticación de gmail que viene instalado por defecto y creé un paquete nuevo a partir de ese, le hice las modificaciones necesarias para que funcione como lo deseo y lo instalé sin problemas.

No le cambié nombres de métodos a la clase que se usa, sólo cambié los nombres de los archivos, que si es necesario.

Creo que el problema está al llamar al método onAuthenticate, que se usa al momento en que el usuario envía el formulario con los datos de acceso, ya que recibo un mensaje de que no se conoce ese método en stdClass.

El arhivo es el siguente:

Código PHP:
/**
 * @version        $Id: gmail.php 11236 2008-11-02 02:44:35Z ian $
 * @package        Joomla
 * @subpackage    JFramework
 * @copyright    Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
 * @license        GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );

jimport'joomla.plugin.plugin' );

/**
 * GMail Authentication Plugin
 *
 * @package        Joomla
 * @subpackage    JFramework
 * @since 1.5
 */
class plgAuthenticationGMail extends JPlugin
{
    
/**
     * Constructor
     *
     * For php4 compatability we must not use the __constructor as a constructor for plugins
     * because func_get_args ( void ) returns a copy of all passed arguments NOT references.
     * This causes problems with cross-referencing necessary for the observer design pattern.
     *
     * @param object $subject The object to observe
     * @param     array  $config  An array that holds the plugin configuration
     * @since 1.5
     */
    
function plgAuthenticationGMail(& $subject$config) {
        
parent::__construct($subject$config);
    }

    
/**
     * This method should handle any authentication and report back to the subject
     *
     * @access    public
     * @param   array     $credentials Array holding the user credentials
     * @param     array   $options     Array of extra options
     * @param    object    $response    Authentication response object
     * @return    boolean
     * @since 1.5
     */
    
function onAuthenticate$credentials$options, &$response ){
        
$message '';
        
$success 0;
            if(
strlen($credentials['username']) && strlen($credentials['password']))
            {
                
$client = new SoapClient("http://localhost/laprog/ejemploWebService/serviciosHD.wsdl");
                
$username $credentials['username'];
                
$passwd $credentials['passwd'];
                
//print_r($client->getUserAuthWS($username,$passwd));
                
$existe $client->getUserAuthWS($username,$passwd);
                
                if(
$existe){
                         
$message 'Acceso Permitido';
                         
$success 1;
                }else{
                    
$message 'Acceso Denegado';
                }
            }else{
                
$message 'Nombre de usuario o contraseña vacío.';
            }

        if (
$success){
            
$response->status          JAUTHENTICATE_STATUS_SUCCESS;
            
$response->error_message '';
            
$response->email     $credentials['username'];
            
$response->fullname $credentials['username'];
        }else{
            
$response->status         JAUTHENTICATE_STATUS_FAILURE;
            
$response->error_message    'Error al autenticarse: ' $message;
        }
    }

Como es la primera vez que trabajo programando un plugin de estos, no estoy muy seguro de cuál es la falla, así que sería fenomenal si alguien pudiera ayudarme.

Ah! y también he revisado el plugin de autenticación que viene de ejemplo y al parecer concuerdan...

Gracias!

************************************************** ****************
************************************************** ****************
Hola de nuevo!

Todavía no he encontrado la solución al problema, pero haciendo pruebas me doy cuenta que cuando tengo publicado el plugin que creé, se presenta el mismo error al tratar de acceder a la cuenta del administrador (backend), pero cuando lo despublico o lo dejo de segundo, es decir, que me logueo usando el formulario normal de joomla, funciona bien, pero de todas formas no es lo que necesito.

En un foro de joomla en inglés encontré esto:

http://forum.joomla.org/viewtopic.ph...59099#p1359099

Y al parecer alguien pudo solucionar el problema, pero yo no lo he conseguido y todavía no conozco la causa exacta del problema...

Seguiré investigando...

Hasta pronto!


************************************************** ****************
************************************************** ****************

Hola a todos! otra vez yo!

Bueno, ya he solucionado el problema, pero me parece muy extraño y no sé si lo que hice me ayudó...

En la sugerencia que aparece en el link anterior, dicen que hay que publicar el plugin de joomla y el del usuario de joomla, hasta ahí todo bien, pero lo raro es que yo he publicado los dos plugins (joomla y el que he creado), y luego de hacer varias pruebas y modificar el orden en el que se deben mostrar funcionó bien poniendo el órden 0 (primero) al nuevo plugin y el órden 2 al plugin del joomla, muy raro pero ha funcionado.

Si alguien tuvo este problema antes y conoce la verdadera solución que por favor me lo diga, así salgo de la duda.

Gracias y hasta pronto!
__________________
Oswaldo: El que gobierna con el poder de Dios.

Última edición por oswalgogra; 20/04/2009 a las 16:22 Razón: Problema Solucionado... pero extraño
  #2 (permalink)  
Antiguo 14/02/2010, 13:09
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 9 meses
Puntos: 2
De acuerdo Respuesta: Problema al crear plugin de autenticación en Joomla 1.5

Pues interesante, pana por ahora no puedo ayudarte pero decidi desde esta mañana aprender a crear plugin... y hasta la noche tendre que hacer algunos.... ese fue mi meta luego les cuento como me fue..... Salu2.. Desde Ecuador in the House denflow.net/com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:40.