+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Login mit Feld aus Jomsocial anstatt username

  1. #1
    Neu an Board
    Registriert seit
    28.11.2007
    Beiträge
    67
    Bedankte sich
    6
    1 Danksagung in 1 Beitrag

    Standard Login mit Feld aus Jomsocial anstatt username

    Hallo, es gibt ja das JFoobar EMail Login Plugin, welches es dem User ermöglicht sich mit der Emailadresse anstelle des Usernamen einzuloggen.
    Könnte man das irgendwie abändern, damit der User sich z.Bsp. mit seiner Handynummer, welcher er in einem Jomsocial Feld hinterlegt hat, anmelden kann?
    Ich habe mich schon versucht, aber username und email kommen beide aus der Tabelle _users , die Jomsocial Felder werden aber in _community_fields_values hinterlegt (siehe Bild).

    Vielen Dank für eventuelle Hinweise und / oder Lösungen!
    Angehängte Grafiken

  2. #2
    Neu an Board
    Registriert seit
    24.05.2011
    Beiträge
    6
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    moin! ich bin mit datenbank geschichten noch nicht so vertraut, aber wenn es mein Problem wäre, würde ich wahrscheinlich erstmal in der zugehörigen php datei des plugins schauen, ob man dort nicht die abfragen ändern kann. dann könnte man auf die richtige tabelle zugreifen... aber wie gesagt, ich bin noch ziemlicher anfänger ^^

    mfg, Olli

  3. #3
    Neu an Board
    Registriert seit
    28.11.2007
    Beiträge
    67
    Bedankte sich
    6
    1 Danksagung in 1 Beitrag

    Standard

    Ja, das Problem ist nur, dass ich genau das nicht hinbekomme ;-)

    Hier müsste man es bestimmt ändern:

    Code:
    // Get a database object
    		$db =& JFactory::getDBO();
    
    		$query = 'SELECT `id`, `password`, `gid`'
    			. ' FROM `#__users`'
    			. ' WHERE email=' . $db->Quote( $credentials['username'] )
    			;
    		$db->setQuery( $query );
    		$result = $db->loadObject();
    
    
    		if($result)
    		{
    			$parts	= explode( ':', $result->password );
    			$crypt	= $parts[0];
    			$salt	= @$parts[1];
    			$testcrypt = JUserHelper::getCryptedPassword($credentials['password'], $salt);
    
    			if ($crypt == $testcrypt) {
    				$user = JUser::getInstance($result->id); // Bring this in line with the rest of the system
    				$response->email = $user->email;
    				$response->username = $user->username;
    				$response->fullname = $user->name;
    				$response->status = JAUTHENTICATE_STATUS_SUCCESS;
    				$response->error_message = '';
    			} else {
    				$response->status = JAUTHENTICATE_STATUS_FAILURE;
    				$response->error_message = 'Invalid password';
    			}
    		}
    		else
    		{
    			$response->status = JAUTHENTICATE_STATUS_FAILURE;
    			$response->error_message = 'User does not exist';
    		}
    	}
    }
    Wenn da jemand kurz einen Blick drauf werfen könnte wäre es super ;-)

  4. #4
    Neu an Board
    Registriert seit
    24.05.2011
    Beiträge
    6
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Meine PhP Kenntnisse sind noch nicht so hervorragend, aber ich glaube, ganz oben wird die verbindung hergestellt. dann wird überprüft, ob die eingegebenen daten stimmen und wenn nicht, kommt eine fehlermeldung. ich würde diese abfragen so lassen. da muss es aber noch eine andere php datei geben, wo die variablen drin enthalten sind. dort wird wahrscheinlich auch auf validierung geprüft, ob es eine tatsächliche mail adresse ist, die eingegeben wurde. und diese validierung von dem email feld kann man ja ändern. eigentlich ists nicht allzu kompliziert.

    hoffe, ich konnte helfen

  5. #5
    Neu an Board
    Registriert seit
    28.11.2007
    Beiträge
    67
    Bedankte sich
    6
    1 Danksagung in 1 Beitrag

    Standard

    Das ist leider die einzige PHP-Datei. Kann denn keiner kurz drüberschauen, der sich da auskennt? Ist bestimmt ein Klacks, wenn man weiß wie ;-)

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein