pragmaMx Support Forum

pragmaMx => Zusatzmodule => Thema gestartet von: Roberturix in 04 März 2007, 08:54:53

Titel: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 04 März 2007, 08:54:53
Ich hab mir das Adressbuch von www.warp-speed.de installiert, soweit so gut.
Die minimalen Anpassungen (DBprefix, Sprachdateien) und Datenimport waren überhaupt kein Problem.
Es funktioniert auch einwandfrei - prinzipiell - seltsamer weise nicht bei allen Usern.
Ich konnte noch nicht so ganz erfassen ob es Gemeinsamkeiten oder Situationen gibt in denen es vorkommt.
Fakt ist, ein Superadmin hat uneingeschränkten Zugriff auf das Modul, ein anderer bekommt keine Inhalte angezeigt.

Ich bekomme bei der "erweiterten Suche" als erste Fehlermeldung:
Notice: Undefined variable: author_arr in /home/httpd/vhosts/teutatesnet.de/httpdocs/portal/modules/4nadressbook/index.php on line 79
danach wird das Abfrageformular angezeigt, allerdings ohne Inhalt.

Ich vermute mal die Ursache liegt hier:

    if(is_array($author_arr)){
            $author_arr = array_unique($author_arr);
            $uids = implode(",", $author_arr);
            $res_auth = sql_query("select name,uname,uid from ".$prefix."_users where uid in(".$uids.")", $dbi);
            while(list($name, $uname, $uid) = sql_fetch_array($res_auth, $dbi)){
                    if(empty($name)) $name = $uname;
                    $options_str .= "<option value=\"".$uid."\">".$name;
            }
    }


Hat jemand ne Idee dazu?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: jubilee in 04 März 2007, 10:18:25
ZitatIch bekomme bei der "erweiterten Suche" als erste Fehlermeldung:
Notice: Undefined variable: author_arr
Hat jemand ne Idee dazu?

Es ist davon auszugehen, das das Array zu diesem Zeitpunkt nicht definiert ist.
Hier dürfte ein Problem mit dem Programmablauf oder der Übergabe von Werten vorliegen.
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 04 März 2007, 10:48:06
Der Programmablauf ist ja soweit i.O., denn bei mir funktioniert er ja, auch die Übergabe der Daten ist i.O. denn ich bekomme eine Ausgabe.
Die Frage ist, warum bekommen Andere keine Ausgabe?

Ich selber habe am Code nichts verändert.
In der Standard Suchmaske wird gar kein Fehler gemeldet, aber die Shortcut-Buchstaben sind nicht anklickbar, haben also keine Daten erhalten auf die sie verlinken können.
Scheint also ein Userabhängiges-Werteübergabe-Problem zu sein.
Aber wie finde ich die Ursache?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: jubilee in 04 März 2007, 10:50:38
ZitatDer Programmablauf ist ja soweit i.O., denn bei mir funktioniert er ja, auch die Übergabe der Daten ist i.O.
Dann liegt ja kein Fehler vor und wir haben uns alle geirrt .....
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 04 März 2007, 10:54:41
Zitat von: jubilee in 04 März 2007, 10:50:38
Dann liegt ja kein Fehler vor und wir haben uns alle geirrt .....
nenene... so einfach ist es leider nicht...
Scheint also ein Userabhängiges-Werteübergabe-Problem zu sein. !!!
Aber wie finde ich die Ursache?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 04 März 2007, 12:09:30
Hat sich erledigt....  :mad2:
Der Fehler war die Portierung aller Einträge als "Privat".
Als "Public" kann sie nun jeder abrufen.

Jetzt bräuchte ich nur noch Schreibrechte für jeden angemeldeten User, ohne ihnen Adminrechte geben zu müssen. Lässt das Pragma das überhaupt zu?

Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 05 März 2007, 10:34:54
Ich weiß nicht in wieweit das die Sicherheitsrichtlinien von pragma gefährdet, daher möchte ich Eure Meinung dazu wissen.
Die Schreibrechte werden vergeben, wenn die if(is_admin) Abfrage positiv verläuft - stimmt's soweit?
Wenn ich nun alle if(is_admin) durch if(is_user) ersetze, sollten doch alle angemeldeten User "Adminzugriff" auf das Modul bekommen.
Oder weiß wer ne bessere Lösung?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: lemming in 05 März 2007, 16:41:10
kann man sich das adressbuch irgendwo mal ansehen damit man sich was drunter vorstellen kann?

gruß
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 05 März 2007, 16:53:10
klar, hier: http://robert.webrichard.de/modules.php?name=4nadressbook
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 08 März 2007, 09:02:10
So ich hab mal die Änderung IS_ADMIN --> IS_USER durchgeführt.
Auf den ersten Blick funktioniert das auch....
Ich habe aber das Gefühl das die Kompatibilität zu pragmaMx nicht ganz passt.

Sollten die enthaltenen Variablen pragma-konform übersetzt werden?
Gibt es denn jemand der das Adressbuch auch laufen hat und gerne ein paar Anpassung daran hätte?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 08 März 2007, 19:42:45
OK, hab mich geirrt, es funktioniert alles wie es soll.
Jeder User kann durch die Modifikation Einträge anlegen und ändern, aber nur seine eigenen Einträge.
Durch den nicht mehr vorhandenen ECHTEN Admin, kann dieser nun auch nur noch seine eigenen Einträge ändern.
Kann mir bitte jemand behilflich sein den Code abzuändern?
Das Original:

if (is_user($admin) || $userinfo[0]==$a_b[author]) {
                            echo "<p align=\"right\">[ <a href=\"modules.php?name=$module_name&file=admin&op=address_book_text_edit&tid=$a_b[tid]\">"._EDIT."</a> ]</p>";
                        }


Die Änderung soll bewirken das der EDIT-Link nur dann gezeigt wird wenn der User tatsächlich dem Author entspricht. Aktuell wird er immer angezeigt, wenn der User angemeldet ist.
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: JoergK in 08 März 2007, 20:06:57
ZurZeit fragst Di ja ab, ob es sich im einen (registrierten) User oder den Autor handelt, daher wird der Link jedem (registrierten) User angezeigt.

Änder einfach das
<?php

if (is_user($admin) || $userinfo[0]==$a_b[author]) {

?>


in das
<?php

if (is_user($admin) && $userinfo[0]==$a_b[author]) {

?>


Somit wird der Link nur noch angezeigt, wenn es sich um einen (registrierten) User und den Autor handelt.
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: Roberturix in 08 März 2007, 20:47:07
Merci.... funktioniert :BD:
Wenn ich in diesem Fall USER ODER ADMIN berechtigen möchte,
        if (is_admin($admin)) {
  echo "<br><center>[ <a href=\"modules.php?name=".$module_name."&file=admin&op=address_book\">"._A_BADMIN."</a> ]</center>";
        } else {
        }


muss das dann
        if (is_admin || is_user($admin)) {
  echo "<br><center>[ <a href=\"modules.php?name=".$module_name."&file=admin&op=address_book\">"._A_BADMIN."</a> ]</center>";
        } else {
        }

heißen?
Titel: Re: 4nadressbook will nicht so recht
Beitrag von: JoergK in 09 März 2007, 20:06:16
Zitat von: Roberturix in 08 März 2007, 20:47:07
...
Wenn ich in diesem Fall USER ODER ADMIN berechtigen möchte,
...

Fast richtig:

<?php

if (is_admin($admin) || is_user($admin)) {

?>


Und damit nen Admin den Link zum Ändern auch zu sehen bekommt (wenn der denn alles ändern können soll), die if-clause noch so erweitern:

<?php

if ((is_user($admin) && $userinfo[0]==$a_b[author]) || is_admin($admin)) {

?>


Noch nen kleinen Tip:
Benutz statt der Funktionsaufrufe zur User- bzw. Adminprüfung doch einfach die dafür vorgesehenen Globalvariablen:

statt is_user() nimmste MX_IS_USER
statt is_admin() nimmste MX_IS_ADMIN

Damit wird der Code (noch) übersichtlicher.  ;)