Page 4 of 14
Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 17:28
by MarioK
Uwe367 wrote:
error while renameing of: installmode[/quote]
Nachdem ich diese Datei von Hand umbenannt habe ist nun auch der Installationsmodus im Backend deaktiviert
Klasse Arbeit Mario....

*Daumen hoch*[/quote]
Danke, an der Stelle versucht er die Datei <installmode> in das Verzeichnis Setup zu legen, ich weis der Funktionsname rename ist eigentlich fürs umbenennen gedacht und nicht fürs ausschneiden -> einfügen
Sprich, die Datei wird nie umbenannt, lediglich in den Ordner <setup> gelegt.
wenn du bei der Datei <setup/setup.php> in Zeile 83 (beim deaktivieren des Installmodus)
Code: Select all
if(@rename('installmode','../installmode')) {
bzw. Zeile 90 (beim aktivieren des Installmodus)
Code: Select all
if(@rename('../installmode','installmode')) {
das @ entfernst, wird die Standard PHP-Fehlermeldung nicht mehr unterdrückt.
Vielleicht hat das Script im Ordner <setup> keine Schreibrechte
@pepe
learning by doing ihr R&V - Vertreter

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 17:29
by update
nee - eben runtergeladen - nüscht....
EDIT: scrollen sollte man können... klar ist sie da...

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 17:30
by MarioK
Readme.txt
Code: Select all
Version 1.1 (für phpwcms 1.4.1 r307) (C) by MarioK (http://forum.phpwcms.org)
Eine kleine Anleitung für das Modul <usergroup>
-----------------------------------------------
1. der Ordner (mit kompletten Inhalt) muss ins Verzeichnis <inc_module> von phpwcms
2. als Admin-User in eurem phpwcms System anmelden und unter <Module> <Benutzer / Gruppen> auswählen
3. alle Fehler beheben (am Besten zu letzt die phpwcms.php modifizieren)
4. <phpwcms_right> ist leer
-> unter <Admin> ... <Benutzerverwaltung> ... einen User (am Besten Admin) auswählen
und ihm mind. rights_benutzer und rights_gruppen aktivieren
wenn alles stimmt ist das Modul aktiv, GLÜCKWUNSCH!
Allgemeine Sachen
-----------------
Auswirkungen auf mein phpwcms-System:
- alles bleibt wie gehabt, es wird "nur" die <phpwcms.php> in <phpwcms.php.org> umbenannt
-> das kann durch deaktivieren von <Modul aktivieren:> wieder rückgängig gemacht werden
-> Änderungen an der Datenbank sind entgültig!!!
Wer ist nun Admin?
- generell ist der Admin der wie im alten System als Admin deklariert wird
- dieses Modul ermöglicht nur eine genauere Unterscheidung von nicht Admins
Was ist der Installations-Modus?
- wenn der aktiviert ist, erfolgt kein Script-abbruch wenn ein Fehler beim lesen der Rechte erfolgt
-> ein Fehler passiert z.B. dann wenn die Tabellen noch nicht existieren
Ich klicke auf Rechte und trotzdem werden sie nicht aktiv!
Ich ordne User/Gruppen zu aber er speichert sie nicht!
- es gibt jeweils eine Checkbox <mit aktualisieren:> die zur Sicherheit aktiviert sein muss
Warum heißen die Rechteoptionen so komisch?
- das System ist so aufgebaut das jeder Zeit in der Tabelle <phpwcms_rights> eine neue Spalte
angelegt werden kann (Bedingung Name der Spalte "rights_WHATEVER")
-> damit wird in der Administration der Rechte <rights_WHATEVER> angezeigt
und mit <$rights["rights_WHATEVER"]> an jeder Stelle im BE Script abrufbar
Wieso brauche ich die Version 1.4.1?
- das Modul ersertzt die <phpwcms.php> mit der von Version 1.4.1
-> wenn ihr andere Versionen habt könnt ihr die manuell modifizieren
alle Änderungen habe ich dokumentiert mit <// Änderung MarioK>
war schnell zusammen geschrieben worden von mir
ACH wenn einer Lust hat kann er gerne meine miesen Englisch-Texte verbessern

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 17:35
by update
Danke! Los geht's

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 17:40
by update
You've asked for - you'll get it...
Zum gefälligen Kopieren - eine kleine Korrektur....
Code: Select all
<?php
// Language: German, Country Code: de
// please use HTML safe strings ONLY,neccessary to reduce processing time
// normal line break: ' ', JavaScript Linebreak: '\n'
// Änderung MarioK
$BLM['backend_menu'] = 'User / Group';
$BLM['modul_title'] = 'User- & Group- Administration';
$BLM['modul_active'] = 'Module active';
$BLM['modul_nullerr'] = 'No errors recognized';
$BLM['modul_err'] = 'There are %i% errors';
$BLM['modul_hint'] = 'does not directly contribute to functionality';
$BLM['modul_phpwcms1'] = 'phpwcms.php has been already modified';
$BLM['modul_phpwcms2'] = 'phpwcms.php is not modified';
$BLM['modul_install'] = 'Installation-Mode';
$BLM['modul_install_hint'] = 'only deactivate if every error has been fixed!';
$BLM['modul_create'] = 'create it';
$BLM['modul_err_rename'] = 'error while renaming of: %file%';
$BLM['modul_err_copy'] = 'error while copying: %file%';
$BLM['modul_err_delete'] = 'error while deleting: %file%';
$BLM['modul_compatiple'] = 'only tested with 1.4.1 (r_307) - running version: %ver%';
$BLM['modul_err_rights'] = 'no data in phpwcms_rights found';
$BLM['modul_ok_rights'] = 'data in phpwcms_rights does exist';
$BLM['be_subnav_admin_history'] = 'reset database';
$BLM['be_admin_rights_error'] = 'error while reading userrights!
script aborted!';
// admin.newgroup.tmpl.php & admin.editgroup.tmpl.php
$BLM['be_admin_group_err1'] = 'groupname is already choosen';
$BLM['be_admin_group_err2'] = 'groupname is empty!';
$BLM['be_admin_group_err'] = 'error';
$BLM['be_admin_group_title'] = 'create new group';
$BLM['be_admin_group_name'] = 'groupname';
$BLM['be_admin_group_desc'] = 'description';
$BLM['be_admin_group_setactive'] = 'activate';
$BLM['be_admin_group_if'] = 'group is active';
$BLM['be_admin_group_button'] = 'send groupdata';
$BLM['be_admin_group_noname'] = 'no name';
$BLM['be_admin_group_edit'] = 'edit groupdata';
$BLM['be_admin_group_ldel'] = 'attention! this group will be deleted';
// admin.usergroup.tmpl.php
$BLM['be_admin_usergroup_member'] = 'included user';
$BLM['be_admin_usergroup_user'] = 'all other users';
$BLM['be_admin_usergroup_member2'] = 'included groups';
$BLM['be_admin_usergroup_user2'] = 'all other groups';
$BLM['be_admin_usergroup_do'] = 'change this, too';
// admin.rights.tmpl.php
$BLM['be_admin_rights'] = 'allowed rights';
$BLM['be_admin_rights_yes'] = 'yes';
$BLM['be_admin_rights_no'] = 'no';
// Ende
?>
Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 18:00
by pepe
Wenn ich mal meine Phantasie schweifen lassen dürfte... würde ich mir für die erste NEUE Installation mit diesem Modul vorstellen, dass als nächstes (für mich brauchbares) Feature eine Zuordnung von "erlaubten Kategorien" zu den unterschiedlichen “Gruppen“ möglich ist, im Sinne von:
Erlaubte Kategorien: x
alle | -
spezielle Auswahl treffen
Die
nicht freigegebenen sollten zwar im Backend für den aktuellen User ggf. angezeigt und eingesehen werden können aber keine Eingabe möglich sein.
Entsprechendes wäre dann natürlich zwangsläufig für den
ARTIKEL-Bereich: Anzeigen und Einsehen ggf. schon... aber keine Veränderung.
Ob das so geht... entzieht sich aber vollkommen meinen Kenntnissen oder Fähigkeiten
Ich weiss, soweit "sind wir noch lange nicht"... aber träumen tu ich davon nun mal seit vielen Monaten
Auf jeden Fall möchte ich nocheinmal wiederholen: Dein Ansatz und deine Aktivität für dieses CMS gefallen mir seeeehr

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 18:02
by MarioK
wow danke
mich nervts langsam immer so viele variablen an die funktionen zu übergeben...
mit globals wäre ungünstig (sicherheit und hat nicht jeder aktiv)
$_SESSION[] is mir auch nicht recht da herum zu schreiben
gibts noch was anderes? seh ich den wald vor lauter bäumen nicht?
und auch von mir, der riesen SKANDAL aufgedeckt durch unserem wachsamen pepe (morgen in der BILD

)
update von der admin.rights.tmpl.php
Code: Select all
<?php
$id = $new_user_id;
if($p==1) $id = $new_group_id;
function print_rights($id=0, $db, $p=0, $rights) {
if($result = mysql_query("SHOW COLUMNS FROM ".DB_PREPEND."phpwcms_rights", $db)) {
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
if($row["Field"] != "rights_id" && $row["Field"] != "rights_user" && $row["Field"] != "rights_group") {
$field[$i] = $row["Field"];
$i++;
}
}
mysql_free_result($result);
}
$sql = "SELECT * FROM ".DB_PREPEND."phpwcms_rights ";
$sql .= "WHERE rights_user = ".$id." LIMIT 0,1";
if($p==1) {
$sql = "SELECT * FROM ".DB_PREPEND."phpwcms_rights ";
$sql .= "WHERE rights_group = ".$id." LIMIT 0,1";
}
if($result = mysql_query($sql, $db)) {
$row = mysql_fetch_assoc($result);
}
$i = 0;
foreach($field as $value) {
if($rights[$value] == 1 || $_SESSION["wcs_user_admin"] == 1) {
if($i == 0) echo '<tr><td width="100px"> </td>';
echo '<td align="right">'.$value.': </td>';
$checked1 = $checked2 = "";
if($row[$value] == "1") { $checked1 = " CHECKED"; } else { $checked2 = " CHECKED"; }
echo '<td width="30px"><input name="'.$value.'" type="radio" value="1"'.$checked1.'></td>'
.'<td><input name="'.$value.'" type="radio" value="0"'.$checked2.'></td>';
if($i == 0) echo '<td width="100px"> </td>';
if($i == 1) echo '<td width="100px"> </td></tr>'.chr(13).chr(10);
$i++;
if($i == 2) $i = 0;
}
}
if($i==1) echo '<td colspan="3"> </td></tr>'.chr(13).chr(10);
@mysql_free_result($result);
if($row["rights_id"] == "") $row["rights_id"] = "new";
echo '<input type="hidden" name="rights_id" value="'.$row["rights_id"].'">';
}
?>
<table border="0" cellpadding="0" cellspacing="0" width="450px">
<tr>
<td colspan="9"><?php echo $label3; ?>: <input type="checkbox" name="dorights" value="1"></td>
</tr>
<tr>
<td colspan="9"> </td>
</tr>
<tr>
<td colspan="9" align="left"><?php echo $BL['modules']['usergroup']['be_admin_rights']; ?>: </td>
</tr>
<tr>
<td colspan="2"> </td>
<td><?php echo $BL['modules']['usergroup']['be_admin_rights_yes']; ?></td>
<td><?php echo $BL['modules']['usergroup']['be_admin_rights_no']; ?></td>
<td colspan="2"> </td>
<td><?php echo $BL['modules']['usergroup']['be_admin_rights_yes']; ?></td>
<td><?php echo $BL['modules']['usergroup']['be_admin_rights_no']; ?></td>
<td> </td>
</tr>
<?php print_rights($id, $db, $p, $rights); ?>
<tr>
<td colspan="9"> </td>
</tr>
</table>
// EDIT
das "alte" Feld zum setzen vom Administrator ist auch noch da wenn Nutzer kein Admin ist

kommt mit der nächsten Version
Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 18:46
by update
Wie bekomme ich denn für einen User / eine Gruppe Zugang zum Newsletter (um zB eine Newslettergruppe zu machen). Momentan ist das Ding einfach weg.... nicht zu sehen...
Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 18:55
by update
Die Rechte des Users überschreiben zTeil die Gruppenrechte.... (Beispiel: ein Benutzer hat alle Rechte und ist in einer Gruppe mit zwei drei Rechten - dann hat er mehr als diese paar Gruppenrechte)
Das kann so nicht gewollt sein, oder?
Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 19:01
by MarioK
claus wrote:Wie bekomme ich denn für einen User / eine Gruppe Zugang zum Newsletter (um zB eine Newslettergruppe zu machen). Momentan ist das Ding einfach weg.... nicht zu sehen...
Newsletter oder Messages habe ich nicht angerühert, somit kannst du es mit meinem modul nicht freischalten, auf den ersten blick in der <phpwcms.php> erkenne ich nur die Abhängigkeit von der (schon viel erwähnten) alten User-Eigenschaft die ihm zum Administrator erhebt (das Kopf-Bildchen in der UserListe)
---> die "neuen" gruppen können so eine eigenschaft noch nicht besitzen
aber vielleicht kann dir jm. besser helfen als ich...
wie beschrieben hat jeder der mein modul nutzt seine <phpwcms.php> mit der aktuellen Standartvariante + meinen Änderungen getauscht.
------------------------------------------------------------
ich hatte es angemerkt, dass ein die rechte mit ODER verknüpfung verbunden werden
MarioK wrote:Meine Vorschläge für Unterscheidungen im Richtliniensystem (Rechte)
- im allgemeinen werden erst Gruppenrechte geladen und dann Nutzerrechte
- ein Verbot wird von einem Erlaub überschrieben (logisches ODER)
Code: Select all
Name Artikel Module Benutzer Gruppen
----- ------ ------ -------- -------
User Mario 1 0 0 0
Gruppe Benutzer 1 1 0 0
Gruppe SubAdmin 0 1 1 1
-------------------------------------------------------------------------
1 1 1 1
- bin mir noch unsicher ob ein lese/schreib/lese&schreib oder ja/nein System?
- eine neue Tabelle wird für Gruppenleiter hinzugefügt (n:n-Verbindung [wie members])
- ein Gruppenleiter darf dann Artikel von seinen Gruppenredakteuren frei verwalten
- Artikel dürfen nur von Leuten der höheren Gruppe oder Besitzer bearbeitet werden
- Tabelle usergroup wird um ein Feld erweitert (Hierarchieebene)
- Tabelle user wird um ein Feld erweitert, wo ein Urlaubsvertreter User angegeben werden kann
Mein Rechte-System wird sich vorwiegend auf Artikel, Administration und Kalender beziehen, aber so gestaltet das zusätzliche Möglichkeiten nicht ausgeschlossen sind

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 19:18
by Uwe367
MarioK wrote:
Danke, an der Stelle versucht er die Datei <installmode> in das Verzeichnis Setup zu legen, ich weis der Funktionsname rename ist eigentlich fürs umbenennen gedacht und nicht fürs ausschneiden -> einfügen
Sprich, die Datei wird nie umbenannt, lediglich in den Ordner <setup> gelegt.
Ich habe mir das Installationspaket mal angeschaut und dabei festgestellt, daß die Datei
Installmode bereits im Ordner
Setup vorhanden ist. Somit konnte die Datei wohl nicht verschoben werden da sie im Zielverzeichnis schon vorhanden ist.
Zum testen habe ich die Datei
Installmode aus dem Ordner Setup gelöscht und das Modul in einer neuen PHPWCMS Version mit neuer Datenbank installiert. Die Fehlermeldung beim deaktivieren des Installationsmodus erschien nun nicht mehr und die Datei wurde, wie es sein soll, ins Verzeichnis
Setup verschoben.
War das der richtige Lösungsweg?

Re: Eigene Rechteverwaltung
Posted: Sat 21. Feb 2009, 19:26
by MarioK
ja... dann war die datei entweder 2x im zip oder noch bei der alten version im setup ordner

Re: Eigene Rechteverwaltung
Posted: Sun 22. Feb 2009, 11:41
by MarioK
Hallo an alle aktive Leser und stiller Verfolger des Projektes,
ich habe beschlossen eine Programmierpause einzulegen um mich der Realisierung meiner Facharbeit zu widmen.
Darüberhinaus erfolgte letzte Nacht ein längere und meiner Meinung nach sehr produktive Absprache mit Guru OG,
was dazu führt, dass ich den kompletten Quellcode nochmal überrolle und auch ein paar Tabellen anders gestalte als sie
bisher von mir entwickelt wurden.
Das neue Modul wird dann hier wieder zugänglich gemacht werden.
Anmerkung: Diverse Probleme mit Rechtevergabe sind bekannt (pepe) und auch andere Probleme sind mir schon aufgefallen beim überarbeitet.
Also seit gespannt was es geben wird

Re: Eigene Rechteverwaltung
Posted: Sun 22. Feb 2009, 11:43
by update
Also - gespannt sind wir schon längst.
Gutes Gelingen bei Deiner Arbeit!
Re: Eigene Rechteverwaltung
Posted: Sun 22. Feb 2009, 17:34
by Heiko H.
MarioK wrote:Darüberhinaus erfolgte letzte Nacht ein längere und meiner Meinung nach sehr produktive Absprache mit Guru OG...
Na wenn das nicht
VIELVERSPRECHEND klingt...
Wie ich Dir - Mario - schon ganz zu Anfang per PM geschrieben hab, bin ich und ganz sicher viele andere (wie man ganz deutlich merkt

)
immer bereit, einen Beitrag zum Gelingen deines Projekts zu leisten, sei es mit Übersetzungen, Dokumentation, Testen, dem zur Verfügung stellen von Webspace, oder was immer Dir die Arbeit erleichtert ... gib zeitraubende "Schreibarbeiten" an das
Fußvolk 
ab, so bleibt dir mehr Zeit für's Wesentliche.
Keine Scheu! Davon lebt ein Projekt -
Teamwork
Auch von mir, Daumen hoch!
Heiko...