Quantcast
Viewing latest article 24
Browse Latest Browse All 42

Login via Kundennummer und Passwort

Ich wollte zusätzlich den Login über Kundennummer und Passwort in meinem Shop ermöglichen. Dazu habe ich in einem Plugin folgende Methoden hinzugefügt. Vielleicht sucht jemand mal nach soetwas:

in der install-Methode:
//Creating hook for login
        $event = $this->createHook(
                                  'sAdmin',
                                  'sLogin',
                                  'onLogin',
                                  Enlight_Hook_HookHandler::TypeBefore,
                                  0
                                  );
        $this->subscribeHook($event);
die Methode an sich:
public static function onLogin(Enlight_Hook_HookArgs $args)
    {
      $form_data = &$args->getSubject()->sSYSTEM->_POST;

      if (!preg_match('/@/', $form_data['email'])) {
        $data = Shopware()->Db()->fetchAll("SELECT ub.userID, u.email FROM s_user_billingaddress ub
                                            LEFT JOIN s_user u
                                            ON ub.userID = u.id
                                            WHERE customernumber = ?",
                                            array($form_data['email'])
                                          );
        //Kundennummer müssen unique sein
        if (count($data) == 1) {
          $form_data['email'] = $data[0]['email'];
        }
      }
    }
Ob es sich um eine Kundennummer oder E-Mail-Adresse handelt wird nur sehr einfach (über das @) überprüft. Sollte jedoch an dieser Stelle ausreichen.

Viele Grüße


===
EDIT:
Achja, statt
$args->getSubject()->sSYSTEM->_POST
wollte ich eigentlich das neuere
$args->getSubject()->Request()
verwenden.
Jedoch klappt das in diesem Kontext nicht:
Fatal error: Call to undefined method Shopware_Proxies_sAdminProxy::Request()

Denkfehler?

Viewing latest article 24
Browse Latest Browse All 42

Trending Articles