Dictionary modul für bestimmte benutzer

Begonnen von yayaya, 09 Juli 2003, 01:53:35

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

yayaya

Hallo Freunde,
unzwar ich möchte diese wunderbare dictionary modul für bestimmte benutzer zugängig machen,also besser gesagt ich möchte dass einige engvertraute benutzer auch einige wörter einfügen können.Würde es gehen und wie ?
danke im voraus für eure hilfe  :)

DarkBoy

In der jetzigen Form so nicht, da eine Gruppenverwaltung fehlt. Aber mit dem VKP mX2.0 wird dieses möglich sein.

yayaya

also es müsste doch bestimmt mit paar änderungen möglich sein,unzwar hier

   $mdict = sql_num_rows(sql_query("select * from ".$prefix."_mdict", $dbi));
            echo ""._MDICT_ACTUAL." : $mdict "._MDICT_ENTRIES."";
if (is_admin($admin)) {

                 echo "[<a href=#1 ONCLICK=window.open('modules.php?name=$name&op=add&mode=0','mdict','width=450,height=250,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,copyhistory=0')> Admin</a>]</b>\n";
            }
     closetable();

Ich habe VKP mX1.0 und habe auch das updaten nicht vor weil da alles momentan sehr gut läuft.wenn trotzdem ein tip geben könntest wäre ich dir sehr dankbar


[Editiert am 10/7/2003 von yayaya]

yayaya

himm habe ich was schlimmes gefragt,sollte man es nicht machen oder weisst keiner  wie es geht?? :quest  :(

jubilee

Hallo !
Nur mal kurz ein Überblick über die Probleme:
Irgendwo musst Du ja festlegen, welcher User zu welcher Gruppe gehört.
Entweder erweiterst Du die User-Tabelle um einen Gruppeneintrag , den Du auswertest, oder du legst eine extra Datenbanktabelle an in dem diese Zuordnung gespeichert wird. Alternativ könnte man es fest in den quellcode einprogrammieren.  
Und da dies Zeit erfordert, ist das im Moment von den Admins wohl nicht zu erbringen. Schließlich soll in kürze das VKPMX 2.0 getestet werden und da ist noch jede Menge Arbeit zu erledigen. Zumindest von unserer Seite ist da erst mal das VKPMX 2.0 wichtiger.  
Evt. können wir anschließend mal schauen (falls das Problem dann noch akut ist).
MfG
jubilee

JensWagenknecht

Brauchst Du wirklich eine Gruppenverwaltung?

Wen es Dir reicht den einzelnen User auswählen zu müssen, so füge doch in die Usertabelle noch eine Spalte ein. Diese braucht nur den Wert 1 und 0 zu beihnalten.
In die Userverwaltung beim Admin noch ein Feld für den User rein, wo Du ankreuzt, ob der User darf oder nicht.
Und bei der Userabfrage vom VPK Nuke die Spalte mit abfragen und an der besagten Stelle mit der IF Abfrage das oder rein.

Liest sich blöd was?

Ich würde es halt VPK komform machen.

yayaya

also ich hab eher an etwas einfacheres gedacht.Ich dachte so wie man bei gummipunkten,onlinelisten einzelne user ausschliessen kann,könnte man mit ähnlicher technik auch in den codes einfügen dass bestimmte benutzer mit ihren nicknamen (also nicht mit status admin oder so) eingetragen sind ,die versteckte link für ein neues wort hinzufügen auch sehen und neue wörter einfügen können.Dafür habe ich eine variable definiert und mit den nicknamen diese varibale initialisiert dann in der if abfrage diese variable eingesetzt aber es hat leider nicht funktioniert.Eigentlich irgendwie die varibale $uname müsste doch dafür reichen und ich glaube nicht dass man extra eine tabelle dafür braucht,aber glauben heisst ja nicht wissen :)

Andi

Hi, :)
Denke auch, eine Gruppenverwaltung speziell für dieses Modul ist etwas übertrieben.

Eine weitere Möglichkeit, ohne im System rumzuwerken ist, das Modul selbst zu modifizieren.
Füge am Anfang des Moduls (index.php) folgendes ein:

$userallowed = array("username1","user3");
$dictallowed = FALSE;
if (is_user($user)) {
   $cookie = cookiedecode($user);
   $dictallowed = (in_array($cookie[1],$userallowed));
   }
unset($userallowed);


Und überall wo die Adminberechtigung mit
 if (is_admin($admin)) {
abgefragt wird etwas dazu:

if (is_admin($admin) || $GLOBALS['dictallowed ']) {

In das Array $userallowed schreibst Du die Namen der User, die Einträge anfügen bzw. modifizieren dürfen.
schön´s Grüssle, Andi

yayaya

@Danke andi,
genau so habe ich mir auch vorgestellt aber es hat leider nicht funktioniert.
Ich habe keine Fehlermeldung bekommen aber der Link ist auch nicht sichtbar  :(

Andi

uuups,
ich habe es leider nicht getestet und an den Link habe ich nicht gedacht.
Ich schau mir's nochmal genauer an, kann nur ne Kleinigkeit sein...
schön´s Grüssle, Andi

yayaya

himmm ich glaube das wurde auch vergessen.ich kann andi verstehen dass er momentan nicht helfen kann aber gibt es jemand anderen der mir helfen könnte??

jubilee

Hallo !
Das hier fügst Du wie Andi geschrieben hat, in der
index.php des Dict-moduls ein :
 
Zitat$userallowed =array("username1"=>"user3");
$dictallowed = FALSE;
if (is_user($user)) {
$cookie = cookiedecode($user);
$dictallowed = (in_array($cookie[1],$userallowed));
}
unset($userallowed);
Am besten nach dieser Zeile :
 
Zitatinclude "language/Dict/lang-$currentlang.php";
dann änderst Du nur noch diese Zeile (so ca. Zeile 60 +-) :
 
Zitatif($pass === $pwd)
so ab :
 
Zitatif (($pass === $pwd)|| ($dictallowed)) {
Dann klappt das so.
Hier : $userallowed = array("username1"=>"user3");
muss dan der/die entsprechenden User eingetragen werden.
bei mehreren Usern entsprechend anwenden
$userallowed = array("username1"=>"user3", "username2"=>"user4");
wobei username=key user=value also user3/4/5 durch den Usernamen ersetzen, den du freigeben willst.
Mehr muss in dem originalen Dictionary-Modul nicht gemacht werden.
MfG
jubilee

[Editiert am 16/7/2003 von SiteAdmin jubilee]

[Editiert am 16/7/2003 von SiteAdmin jubilee]

yayaya

leider ohne erfolg,denn ich habe diese Zeile
$userallowed = array("username1"=>"user3");

so geändert:
$userallowed = array("username1"=>"test");

und mich dann eingelogt aber leider der link erscheint nicht!!




jubilee

Ja, richtig so.
Hast du die andere Sache auch abgeändert:
if($pass === $pwd)  
--->
if (($pass === $pwd)|| ($dictallowed))
??
(Nur als Hinweis: Das || ist kein doppeltes i sondern ein doppeltes mathematisches Trennungszeichen = Taste [ALT GR] + die Taste neben der linken [SHIFT]-Taste)
Bei mir getestet und funktioniert.
Sonst schick ich Dir die index.php per E-Mail ...
MfG
jubilee

[Editiert am 16/7/2003 von SiteAdmin jubilee]

yayaya

jep ich habe genau so gemacht wie du gesagt hast.ich wäre dir dankbar wenn du mir datei an die ardani@gmx.de schickst
danke dir schon mal!!

[Editiert am 16/7/2003 von yayaya]

yayaya

danke jubilee,ich habe deine Email bekommen und es funktioniert.Ich habe nachgeschauet warum es davor nicht funktioniert hat und ich habe gesehen dass in deiner version statt if abfragen eine extra funktion als checkadmin gibts.das war glaube ich das problem.aber jetzt gehts danke dir vielmals

jubilee

Hallo !
Na Hauptsache
es geht !
MfG
jubilee