News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 13
Seite [1]
r3pcom


Beginner




Beiträge: 11
# Thema - 18.10.2012 um 12:51 Uhr
Hi Leute, ich möchte auf meiner Seite das Artikel Modul als eine Art Review Datenbank benutzten, in der User ihre Reviews zu Spielen, Filmen usw. abgeben können.

Dabei habe ich allerdings ein kleines Problem mit den Zugriffsrechten festgestellt.
Und zwar möchte ich es so einrichten, dass User sowohl eigene Artikel schreiben als auch bearbeiten können. (Quasi wie im Forum)

Ich habe jetzt also im Artikel Modul den Usern die Zugriffsstufe 3 (mit Erstellen) gegeben. Damit können sie zwar Artikel schreiben, aber nicht editieren.

Okay, dacht ich mir. Gibste ihnen halt Stufe 4. Allerdings kann ein User damit ALLE Beiträge editieren, nicht nur seine eigenen.

Meine Frage wäre also: Wie bekomme ich das so hingebogen das man auch auf Stufe 4 nur seine eigenen Beiträge bearbeiten kann.

Vielen Dank schonmal für jegliche Tipps^^


Zuletzt editiert von r3pcom am 18.10.2012 um 13:14 Uhr (2x Editiert)
Inaktiv
Tress13


Highlander




Herkunft: Lüdenscheid
Beiträge: 3048
# Antwort: 1 - 18.10.2012 um 18:13 Uhr
Das ist echt blöd.
Aber helfen kann ich dir dabei leider auch nicht.



------------------


www.iv-gaming.de | www.iv-artwork.de

Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 2 - 18.10.2012 um 19:25 Uhr
Ich hab es jetzt soweit hinbekommen das man nurnoch die eigenen Einträge ändern kann. Dummerweise gillt das auch für die Admins. Mal schauen, vielleicht bekomm ich das auch noch hin.


Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 3 - 19.10.2012 um 02:25 Uhr
Hach, ich find deine Idee so schön, dass ich dir gerne helfe, während ich auf meinen Mate beim Zocken warte. :p

Und zwar gibt es das Array $account, was so aussieht:
Array ( [users_id] => 1 [access_id] => 5 [users_nick] => Schalla [users_name] => [users_surname] => [users_sex] => [users_age] => [users_height] => 0 [users_lang] => German [users_country] => fam [users_postalcode] => [users_place] => [users_adress] => [users_icq] => 0 [users_msn] => [users_skype] => [users_email] => XYZ [users_emailregister] => XYZ [users_url] => [users_phone] => [users_mobile] => [users_active] => 1 [users_limit] => 20 [users_view] => [users_register] => 1318420477 [users_laston] => 1350598841 [users_picture] => [users_avatar] => [users_signature] => [users_info] => [users_timezone] => 3600 [users_dstime] => 0 [users_hidden] => users_email [users_regkey] => [users_homelimit] => 8 [users_readtime] => 1209600 [users_newsletter] => 0 [users_tpl] => [users_theme] => [users_invisible] => 0 [users_ajax] => 0 [users_delete] => 0 [users_abomail] => 1 [access_name] => Webmaster [access_access] => 5 [access_clansphere] => 5 [access_abcode] => 5 [access_ajax] => 5 [access_articles] => 5 [access_awards] => 5 [access_banners] => 5 [access_board] => 5 [access_boardmods] => 5 [access_boardranks] => 5 [access_buddys] => 5 [access_cash] => 5 [access_categories] => 5 [access_chat] => 0 [access_clans] => 5 [access_comments] => 5 [access_computers] => 5 [access_contact] => 5 [access_count] => 5 [access_database] => 5 [access_errors] => 5 [access_events] => 5 [access_explorer] => 5 [access_faq] => 5 [access_ckeditor] => 5 [access_fightus] => 5 [access_files] => 5 [access_gallery] => 5 [access_games] => 5 [access_gbook] => 5 [access_history] => 5 [access_joinus] => 5 [access_lightbox] => 5 [access_links] => 5 [access_linkus] => 5 [access_logs] => 5 [access_maps] => 5 [access_medals] => 5 [access_members] => 5 [access_messages] => 5 [access_modules] => 5 [access_news] => 5 [access_newsletter] => 5 [access_notifymods] => 5 [access_options] => 5 [access_partner] => 5 [access_quotes] => 5 [access_ranks] => 5 [access_replays] => 5 [access_rules] => 5 [access_static] => 5 [access_search] => 5 [access_servers] => 5 [access_shoutbox] => 5 [access_squads] => 5 [access_templates] => 5 [access_users] => 5 [access_usersgallery] => 5 [access_tinymce] => 0 [access_votes] => 5 [access_wars] => 5 [access_wizard] => 5 )

(Zu sehen via print_r($account); )

Dieses Array zeigt JEDE Info über den User an, ausgenommen von Sicherheitsrelevanten (PWD, Session, ...)

Du siehst dort auch access_articles. Wenn du nun natürlich sagst:

 
1.
1. / 2. / ... 
 if($own==true || $account['acess_articles']>3) continue;


Können nur Leute mit 3 drauf zugreifen, wenn sie Ihnen gehören oder Leute welche den article acess über 3 haben. D.h. 4 + 5

Hoffe konnte dir helfen.

Lg,
Daniel


Zuletzt editiert von Schalla ClanSphere Team am 19.10.2012 um 02:25 Uhr (1x Editiert)
Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 4 - 19.10.2012 um 13:44 Uhr
Hey Schalla! Danke für die Hilfe! Ich hab deine Version mal so eingebunden wie ich es bei meiner versucht habe, aber so ganz funktioniert's leider trotzdem nicht.

Mein Artikel Modul ist so eingestellt das es Editieren ab Stufe 3 zulässt, also in der access.php den Eintrag
 
1.
1. / 2. / ... 
 $axx_file['edit']    = 3;
hat. Damit kann ich nun unter Verwendung deiner Lösung auf Access 3 wieder alles bearbeiten, also auch die beiträge anderer. Ändere ich den Wert oben wieder auf 4, lässt er mich garnicht erst in die Edit Funktion rein, auch nicht in meinen eigenen Beiträgen.



Wo genau müsste ich deine Version denn eintragen? Ich gehe davon auch, dass ich hier etwas falsch gemacht habe.

Ich hatte es jetzt direkt in der edit.php des Artikel Moduls gemacht also:

 
1.
2.
1. / 2. / ... 
  if($own==true || $account['acess_articles']>3) continue;
    echo 
cs_subtemplate(__FILE__,$data,'articles','edit');



Meine (zugegebenermaßen völlig improvisierte) Version war das hier:

 
1.
2.
1. / 2. / ... 
 $data['if']['access'] = ($account['users_id'] == $cs_articles['users_id']) ? true false;
    echo 
cs_subtemplate(__FILE__,$data,'articles','edit');


Diesen Ansatz habe ich mir aus einem andren Thread kopiert, indem es darum ging, die Shoutbox für unregistrierte User zu verstecken.


Zuletzt editiert von r3pcom am 19.10.2012 um 15:42 Uhr (3x Editiert)
Inaktiv
|
Jam2 ClanSphere Team


Highlander





Beiträge: 3291
# Antwort: 5 - 20.10.2012 um 10:15 Uhr
19.10.2012 um 02:25 Uhr - Schalla:

(Zu sehen via print_r($account); )

Für Anfänger ist die Liste ein wenig übersichtlich. Abhilfe schafft:

echo "<pre>";
print_r($account);
echo "</pre>";




------------------
Gruß/ Best regards
Jam2

Nützliche Forumbeiträge/Codepastes: (Useful comments in our board / codepastes)
Template Switch for index.php
Board Navlist last posts

Edi: könnte man denn auch hier eine erweiterung einfügen?
Jam2: das web ist wie toyota.....
Edi: hö ?
Jam2: nichts ist unmöglich!


Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 6 - 20.10.2012 um 15:43 Uhr
Also das Array verstehe ich soweit, ich müsste jetzt nur mal wissen wo ich Schallas Version entragen muss, da steh ich nähmlich gerade total auf'm Schlauch


Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 7 - 20.10.2012 um 16:33 Uhr
Kannst du mal die gesamte Edit reinpasten in nen Paste service?

pastebin z.B. (via Google zu finden)

Du musst damit die PHP Datei bearbeiten, via Access reicht das nicht.


Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 8 - 20.10.2012 um 16:36 Uhr
Okay, hier ist die Edit.php so wie sie im Moment aussieht.

http://pastebin.com/zq8qa7Qg


Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 9 - 20.10.2012 um 23:06 Uhr
Ich bin grade nicht daheim, aber als Denkanstoß:

- Abfrage wer den Artikel schrieb
- Abfrage welches Level der User hat, der den Artikel bearbeiten will
- Verarbeitung der Daten, d.h. sofern er nicht autorisiert ist:
 
1.
1. / 2. / ... 
 header("Location: index.php?mod=articles");


Vielleicht hilft dir das ja schon bereits.


Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 10 - 22.10.2012 um 11:17 Uhr
Vielen Dank Schalla, das hat mir jetzt sehr geholfen!

Hab's jetzt folgendermaßen gelöst:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
1. / 2. / ... 
 
$userid 
$cs_articles['users_id'];
$editid $account['users_id'];  
$zugriff $account['access_articles'];

if(
$userid == $editid || $zugriff >3){
echo 
cs_subtemplate(__FILE__,$data,'articles','edit');
}else { 
header("Location: index.php?mod=articles");
}


War also vom Prinzip her total simpel, wenn man erstmal drauf kommt.
Jetzt werd' ich nur noch mal versuchen, ob ich anstatt der Weiterleitung zum Index des Artikel Moduls, vielleicht die "Zugriff Verweigert" Seite anzeigen lasse, die angezeigt wird wenn man einen zu niedrigen Zugriffslevel hat. Ist vielleicht weniger verwirrend für die User. Dann brauchen sie sich nicht zu fragen "Nanu, warum bin ich denn wieder auf der Startseite?"

So wie das jetzt läuft, werde ich diese Lösung wahrscheinlich auch noch bei ein paar anderen Modulen anwenden. Dachte da z.B. and die Gallerie usw.

Vielen Dank noch mal, Schalla und Jam2, habt mir sehr geholfen


Zuletzt editiert von r3pcom am 22.10.2012 um 11:34 Uhr (2x Editiert)
Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 11 - 22.10.2012 um 15:06 Uhr
Ja, die halbe Miete ist die Idee.

Jo, einfach ne Datei erstellen unter mod/articles:
error.php:
<?php echo cs_subtemplate(__FILE__,$data,'articles','error');?>

access.php:
Eintrag für error hinzufügen, Accesslevel 1

/themes/{THEME}/articles/error.tpl

Da dann den Error rein + Link zur Startseite.


Inaktiv
|
r3pcom
Thread-Ersteller


Beginner




Beiträge: 11
# Antwort: 12 - 22.10.2012 um 15:56 Uhr
22.10.2012 um 15:06 Uhr - Schalla:
Ja, die halbe Miete ist die Idee.

Jo, einfach ne Datei erstellen unter mod/articles:
error.php:
<?php echo cs_subtemplate(__FILE__,$data,'articles','error');?>

access.php:
Eintrag für error hinzufügen, Accesslevel 1

/themes/{THEME}/articles/error.tpl

Da dann den Error rein + Link zur Startseite.


Gesagt, getan! So schauts jetzt aus, wenn man versucht mit einem Zugriff <4 den Post eines anderen Users zu bearbeiten (siehe Anhang) Meine Seite ist auf englisch, daher hab ich die error page mal (noch) nicht übersetzt.

Außerdem habe ich die Lösung von oben jetzt auch noch mit der Modul Erweiterung für Reviews von Neurologe (siehe hier) kombiniert. So sieht das Ganze schon ziemlich genau so aus wie ich es mir vorgestellt hatte. Jetzt muss ich es nurnoch schaffen das Modul in der Verwaltung umzubenennen von "Articles" zu "Reviews", aber das sollte kein Problem sein .
Dateianhänge:
png errortest.png (17.93 KiB - 28 mal heruntergeladen )


Zuletzt editiert von r3pcom am 22.10.2012 um 16:04 Uhr (3x Editiert)
Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 13 - 22.10.2012 um 18:15 Uhr
Jow, freut mich doch das du es selbst geschaft hast Finde ich wertvoller.


Inaktiv
|
Antworten: 13
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo