Objekte Frontend bearbeiten

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
Chrissie2014
Junior Member
Beiträge: 12
Registriert: So 21. Sep 2014, 17:09

Objekte Frontend bearbeiten

Beitragvon Chrissie2014 » So 28. Dez 2014, 17:43

Hallo liebe WE Gemeinde,

folgendes Szenario: ein registrierter Kunde kann über einen Frontend-Bereich Objekte anlegen, ebenso löschen und bearbeiten. Klappt alles auch soweit. Wenn der Kunde ein Objekt bearbeiten möchte, dann gelangt er über einen Link

Code: Alles auswählen

<we:a edit="object"  type="listview" id="939">Bearbeiten</we:a>
auf eine Bearbeiten-Seite:

Code: Alles auswählen

			<we:ifRegisteredUser>
                       <we:form id="946" type="object" name="editob" method="post" classid="13">
				
				Einrichtung: <we:userInput type="textinput" name="Einrichtung_Einrichtung"  /><br>
				Standort: <we:userInput type="textinput" name="Einrichtung_Standort"  /><br>
				 ..... usw......
				
				<input type="submit" name="ChangeSubmit" value="Speichern" />
			</we:form>
		</we:ifRegisteredUser>
Gespeichert wird dann mit:

Code: Alles auswählen

	<we:write type="object" formname="editob" protected="true" publish="true" classid="13" onduplicate="overwrite" mail="kontakt@xyz.de" forceedit="true" />
	<we:ifWritten type="object">Das Objekt wurde erfolgreich gespeichert
			<we:else />
			Leider ist ein Fehler aufgetreten! Bitte versuchen Sie es erneut.
			</we:ifWritten>
Aber:

Code: Alles auswählen

<we:a edit="object"  type="listview" id="939">Bearbeiten</we:a>
übermittelt z.B. ....?we_editObject_ID=235 an die Bearbeiten-Seite.

Ändere ich nun die ID in der Browserzeile händisch z.B. auf 233, so kann der registrierte Kunde das Objekt eines anderen registrierten Kunden bearbeiten. Ist ja auch logisch, aber das will ich natürlich nicht so belassen :)

Was kann ich tun?

Danke und Gruß
Chrissie

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte Frontend bearbeiten

Beitragvon WBTMagnum » Di 30. Dez 2014, 00:49

Hallo Chrissie,

Schau dir mal das Tag <we:ifRegisteredUserCanChange>/ an. Vielleicht hilft dir das ja weiter. Hier im Forum gibt es auch ein paar Einträge dazu.

Liebe Grüße,
Sascha

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: Objekte Frontend bearbeiten

Beitragvon mediavantis » Di 22. Okt 2019, 12:59

Hallo Gemeinde,
ich habe das selbe Problem und bin auch hier im Forum nicht schlauer geworden.

Auf der Kunden-Login-Seite wird sein Objekt in einer LV mit aktuellem Status angezeigt. Mit dem Link...

Code: Alles auswählen

<we:a edit="object" id="38" class="button">Eintrag bearbeiten</we:a>
kommt man auf folgende URL: https://domain.tld/login/profil-editier ... ect_ID=121

Diese Seite habe ich versucht mit <we:ifRegisteredUserCanChange protected="true" admin="ID"> abzudichten, damit bei manueller Änderung der ID keine Daten/Inhalte des anderen Users angezeigt werden.

Code: Alles auswählen

<we:ifRegisteredUser>
	<we:sessionField name="ID" type="hidden" />
	<we:sessionField type="print" name="ID" nameto="customerID" to="global" />

	<we:setVar namefrom="we_editObject_ID"  nameto="globaloid" to="global" from="request" />
	<we:ifRegisteredUserCanChange protected="true" admin="ID">

		<we:object id="\$globaloid">

			<we:ifField name="Art" match="Premium">
				<we:form name="premium" method="post" type="object" classid="1" id="30">
					... diverses ...
				</we:form>

				<we:else />

				<we:form name="standard" method="post" type="object" classid="1" id="30">
					... diverses ...
				</we:form>				
			</we:ifField>

		</we:object>

		<we:else />

		<h1>Keine Berechtigung</h1>

	</we:ifRegisteredUserCanChange>

	<we:else />
	<h1>Du bist nicht angemeldet</h1>
</we:ifRegisteredUser>
Allerdings werden dennoch sämtliche Felder und deren Inhalte des anderen Users angezeigt. Lediglich eine Änderung der Daten schlägt beim Absenden des Formulars fehl.

Meine Frage ist nun: wie kann ich zuverlässig verhindern, dass die Inhalte des anderen Users angezeigt werden? Habe ich in meinem Code einen Fehler?

Ich bin für jeden Hinweis dankbar.
WE: Version 8.1.0 / PHP 7.2.23

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte Frontend bearbeiten

Beitragvon WBTMagnum » Di 22. Okt 2019, 17:13

Hallo Ulrich,

Habe das jetzt nicht getestet, aber müsste <we:ifRegisteredUserCanChange> nicht innerhalb von <we:object> stehen?

HTH,
Sascha

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: Objekte Frontend bearbeiten

Beitragvon mediavantis » Di 22. Okt 2019, 17:34

Hallo Sascha,

ich habe das Tag an diversen Stellen eingesetzt, da ich mir auch nicht ganz sicher war, also vor und nach we:object, vor und nach we:form, ja sogar ganz am Anfang und Ende, also innerhalb von we:ifRegisteredUser - alles ohne die erhofften Auswirkungen.

Bin echt am verzweifeln, denn so wie es jetzt ist kann jeder User erfolgreich manipulieren...

Hast Du evtl. noch eine Idee?

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Objekte Frontend bearbeiten

Beitragvon WBTMagnum » Mi 23. Okt 2019, 09:50

Hallo Ulrich,

Lieder haben wir das so nirgends in Verwendung. Ich würde das aber mal so probieren (ungetestet):

Code: Alles auswählen

<we:ifRegisteredUser>
    <we:sessionField name="ID" type="hidden" />
    <we:sessionField type="print" name="ID" nameto="customerID" to="global" />
    <we:setVar namefrom="we_editObject_ID" nameto="globaloid" to="global" from="request" />

    <we:object id="\$globaloid">
        <we:ifRegisteredUserCanChange protected="true">
            ...
        <we:else />
            <h1>Keine Berechtigung</h1>
        </we:ifRegisteredUserCanChange>
    </we:object>
<we:else />
    <h1>Du bist nicht angemeldet</h1>
</we:ifRegisteredUser>

HTH,
Sascha

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: Objekte Frontend bearbeiten

Beitragvon mediavantis » Mi 23. Okt 2019, 10:16

Hallo Sascha,

erst mal vielen Dank für Deine Mühe!
Nun funktioniert es!
Der Fehler lag in dem Attribut "admin="ID" ". Das war zu viel des Guten. Lässt man dieses Attribut weg, funktioniert alles, wie gewollt.


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 7 Gäste