Hallo zusammen,
es ist aus meiner Sicht zwar nicht extrem kritisch, aber ich wollte es dennoch angebracht haben:
Mir ist aufgefallen, dass man die Lieferadresse anderer Nutzer übernehmen kann. Dazu sind nur die folgenden Schritte nötig:
1. Man geht in den Bereich "RECHNUNGS- UND LIEFEREINSTELLUNGEN"
2. Man öffnet den Editiermodus für die eigene Lieferadresse.
3. Man trägt in der Option ausgewählten Adresse als Value eine fremde Address-ID ein.
4. Man klickt auf Speichern.
Dadurch wird die oxuserid der Adresse geändert und der vorherige Besitzer hat eine Lieferadresse weniger...
Die einfachste Lösung wäre in der Funktion _assignAddress im oxuser-Model zu prüfen ob die anzupassende Adresse die User-ID des aktuellen Nutzers hat.
Zum Beispiel so:
es ist aus meiner Sicht zwar nicht extrem kritisch, aber ich wollte es dennoch angebracht haben:
Mir ist aufgefallen, dass man die Lieferadresse anderer Nutzer übernehmen kann. Dazu sind nur die folgenden Schritte nötig:
1. Man geht in den Bereich "RECHNUNGS- UND LIEFEREINSTELLUNGEN"
2. Man öffnet den Editiermodus für die eigene Lieferadresse.
3. Man trägt in der Option ausgewählten Adresse als Value eine fremde Address-ID ein.
4. Man klickt auf Speichern.
Dadurch wird die oxuserid der Adresse geändert und der vorherige Besitzer hat eine Lieferadresse weniger...
Die einfachste Lösung wäre in der Funktion _assignAddress im oxuser-Model zu prüfen ob die anzupassende Adresse die User-ID des aktuellen Nutzers hat.
Zum Beispiel so:
PHP Code:
protected function _assignAddress( $aDelAddress ) {
if ( is_array( $aDelAddress ) && count( $aDelAddress ) ) {
$sAddressId = $this->getConfig()->getRequestParameter( 'oxaddressid' );
$sAddressId = ( $sAddressId === null || $sAddressId == -1 || $sAddressId == -2 ) ? null : $sAddressId;
$oAddress = oxNew( 'oxaddress' );
$oAddress->setId( $sAddressId );
$oAddress->load( $sAddressId );
$oAddress->assign( $aDelAddress );
$oAddressUserId = $oAddress->oxaddress__oxuserid->value;
if($oAddressUserId == null || $oAddressUserId == $this->getId()) {
$oAddress->oxaddress__oxuserid = new oxField( $this->getId(), oxField::T_RAW );
$oAddress->oxaddress__oxcountry = $this->getUserCountry( $oAddress->oxaddress__oxcountryid->value );
$oAddress->save();
}
// resetting addresses
$this->_aAddresses = null;
// saving delivery Address for later use
oxSession::setVar( 'deladrid', $oAddress->getId() );
} else {
// resetting
oxSession::setVar( 'deladrid', null );
}
}