Seite 1 von 1

Autom. Userrechte auf andere User übertragen

Verfasst: 11.03.2012 00:42
von PC-Junky
Ich suche ein Script oder einen Mod, der automatisch Userrechte eines bestimmten Users auf einen anderen User überträgt. Am besten mit definierbarer Zeitsteuerung oder in sinnvollen, zeitlichen Intervallen.

Hintergrund
(Entschuldigung, daß es recht lang geschrieben ist aber knapper konnte ich es nicht fassen. Damit es auch möglichst verständlich ist was ich meine und suche.) :oops:

Ich baue mir gerade ein Familienforum auf. Für den Rest der Welt bleibt das Forum verschlossen und unzugänglich. Auch Registrierungen werden nicht möglich sein. User werden von mir vorangelegt und über die Adminfreischaltung dann per E-Mail über den fertigen Zugang verständigt. Passwörter können die User dann ja nachträglich nach ihrem belieben ändern. Familienmitglieder und Verwandte sollen "private Bereiche" bekommen und sich dort mit ihren persönlichen Freunden und Bekannten austauschen. Aber sie sollen auch die möglichkeit bekommen, die Freunde und Bekannten anderer Familienmitgliedern und Verwandten in ihren persönlichen Bereich einzuladen. Hierzu erhalten sie einen Gruppenleiterstatus und können so andere Forenmitglieder in ihre Gruppe aufnehmen oder eben auch wieder rauswerfen. Im gewissen Rahmen können sich also für alle Forenmitglieder immer mal die Zugangsrechte für bestimmte Forenbereiche ändern. Und zwar so, daß sich dies meiner administrativen Kontrolle mehr oder weniger entzieht. Denn ich ändere ja nicht deren Gruppenzugehörigkeit, sondern die berechtigten User entsprechend selbst. Deren Gutdünken obliegt aber nicht meiner direkten Kontrolle. So weit ist das ja alles noch kein Problem für mich. Aber meine Familie und meine Verwandten haben ja auch minderjährige unter uns und deren Freunde und Bakannten sollen ja auch ins Forum dürfen. Und jetzt bekomme ich als Vater ein wenig Bauchweh.

Irgendwann würden die Eltern der außerfamiliären, minderjährigen Forenmitlgieder von dem Forum erfahren und vielleicht wissen wollen, was das für ein Forum ist und was ihre Kinder da so treiben und mit wem sie da Kontakt haben. Nur hätten die betreffenden Eltern absolut keine Chance sich in meinem Forum zu registrieren und so ihre elterlichen Pflichten zu erfüllen und oder ihre berechtigte Neugier zu befriedigen. Also mir als Vater wäre das nicht so recht und eventuell würde ich meinem Kind die weitere Nutzung des Forums verbieten aber kontrollieren könnte ich es natürlich nicht wirklich so ohne weiteres. Wenn eines meiner Kinder in so einem verschlossenen Forum tätig wäre. Na lange Rede kurzer Sinn..... Ich möchte daher also auch zumindest ein Elternteil mit ins Forum lassen, damit dieses Elternteil seiner gesetzlichen Aufsichtspflicht nachkommen kann. Nur damit dies auch möglichst vollständig funktioniert, muss das jeweilige Elternteil auch in alle Forenbereiche Zugang haben in die auch sein Sprössling Zugang hat. Das aber wieder entzieht sich ja teilweise meiner administrativen Kontrolle, wie weiter oben schon beschrieben. Ohne mein Zutun kann sich also jederzeit ja die Gruppenzugehörigkeit des betreffenden Kindes ändern und ich würde es wohl auch nichtmal so unbedingt mitkriegen. Aber selbst wenn, dann kann ich immer hinterherarbeiten und dem entsprechendem Elternteil ebenfalls die Zugangsrechte zuteilen. Und das kann sich durchaus ja jeder denken, daß dies eine heiden Arbeit werden könnte.

Und genau dafür suche ich also ein entsprechendes Script oder ein Mod. Welches mir also diese Arbeit abnimmt. Vermutlich muss dazu wohl die Datenbank durchsucht werden nach den betreffenden Einträgen des betreffenden Kindes und dann die zusätzlichen Zugangsrechte des Kindes auf das entsprechende Elternteil übertragen werden. Die Änderungen müssten dann ja wohl wieder in die Datenbank geschrieben werden. Allerdings sollen die sonstigen Zugangsrechte des jeweiligen Elternteiles nicht geändert werden. Denn schließlich wird es im Bereich für alle Forenuser auch einen "Ab 18j" Bereich geben, in dem man sich mal über Themen für (V)Erwachsene :grin: austauschen kann.

Re: Autom. Userrechte auf andere User übertragen

Verfasst: 11.03.2012 11:06
von Miriam
Ich bin kein Rechtsgelehrter, meine aber, dass du ohnehin die Eltern über die Mitgliedschaft ihrer minderjährigen Kinder in deinem Forum unterrichten musst.
Von daher denke ich, dass die Zugangsgewährung über die betroffenen Eltern erfolgen muss. Du bietest den Dienst an und die Eltern akzeptieren die Mitgliedschaft oder lehnen sie ab.
Der Vertrag kommt zwischen dir als Boardbetreiber und den Eltern zustande. Nicht zwischen dir und den Kindern.

Für das, was auf deinem Board abläuft bist du direkt oder indirekt verantwortlich. Ggf. solltest du dir Vertreter (Moderatoren, Admins) mit ins Boot holen.

Re: Autom. Userrechte auf andere User übertragen

Verfasst: 11.03.2012 11:27
von PC-Junky
Miriam hat geschrieben:Ich bin kein Rechtsgelehrter, meine aber, dass du ohnehin die Eltern über die Mitgliedschaft ihrer minderjährigen Kinder in deinem Forum unterrichten musst.
Von daher denke ich, dass die Zugangsgewährung über die betroffenen Eltern erfolgen muss. Du bietest den Dienst an und die Eltern akzeptieren die Mitgliedschaft oder lehnen sie ab.
Der Vertrag kommt zwischen dir als Boardbetreiber und den Eltern zustande. Nicht zwischen dir und den Kindern.

Für das, was auf deinem Board abläuft bist du direkt oder indirekt verantwortlich. Ggf. solltest du dir Vertreter (Moderatoren, Admins) mit ins Boot holen.
Eine Nachricht an die Eltern häte ich wohl eh gegeben. Dahingehend habe ich in meinem Text schlecht geschrieben. Aber danke für den Hinweis. Die Verantwortlichkeit ist mir auch so weit klar. Aber da es ja alles nur Familie, Verwandte und deren Freunde und Bekannte sind, ist das inhaltlich also sauber. Ich will halt nur nicht das ganze Internet in dem Forum haben und daher ist es für alle sonst eben verschlossen. Und um das zu erreichen setze ich notfalls eine .htaccess vor das Forum. Aber ich denke ich kann das auch mit der "Deaktivierung" des Bords erreichen. Damit ist der Inhalt ja dann auch nicht öffentlich zu sehen. Doch meine eigentliche Frage ist damit leider nicht beantwortet. Dennoch danke für deinen Einwandt. :)

Re: Autom. Userrechte auf andere User übertragen

Verfasst: 11.03.2012 19:26
von Miriam
Gern.

Zur Umsetzung Deiner Idee, könntest du Folgendes machen:
benutze die Mod Account Links; damit kannst Du bzw. deine User Accounts verknüpfen. Die Änderung in der overall_header.html setzt du hier nicht um.

Du kannst auch auf diese Mod verzichten und die Eintragungen manuell in der DB vornehmen.
Aber ich denke mal, das macht sich mit der Mod besser / übersichtlicher.


Dann erstelle eine neue Berechtigung, indem du in der DB das hier ausführst:

Code: Alles auswählen

INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('u_acc_link', 1, 0, 0); 
Kopiere auch diesen Inhalt in eine Datei namens /language/de/acp/permissions_linked_user.php

Code: Alles auswählen

<?php
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

// Adding new category
$lang['permission_cat']['Acc_Link'] = 'Account Link Management';

// Adding the permissions
$lang = array_merge($lang, array(
    'acl_u_acc_link'    => array('lang' => 'Kann Brechtigungen verlinkter Accounts testen', 'cat' => 'Acc_Link'),
));
?>
bzw. in allen Sprachen, die du / deine User nutzen. Beachte auch: KB:utf8bom.

Finde in den memberlist_view.html deiner Templates:

Code: Alles auswählen

<!-- IF U_SWITCH_PERMISSIONS --> [ <a href="{U_SWITCH_PERMISSIONS}">{L_USE_PERMISSIONS}</a> ]<!-- ENDIF --> 
danach füge ein:

Code: Alles auswählen

<!-- IF U_ACC_LINK --> [ <a href="{U_ACC_LINK}">{L_USE_ACC_LINK_PERMISSIONS}</a> ]<!-- ENDIF --> 
Finde in der memberlist.php:

Code: Alles auswählen

'U_SWITCH_PERMISSIONS'    => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&u={$user_id}&hash=" . generate_link_hash('switchperm')) : '', 
danach füge ein:

Code: Alles auswählen

'U_ACC_LINK'            => ($user->data['user_id'] == $master_id) ? (($auth->acl_get('u_acc_link') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=acc_link&u={$user_id}&hash=" . generate_link_hash('acc_link')) : '') : '', 
Finde in der ucp.php:

Code: Alles auswählen

case 'switch_perm': 
davor füge ein:

Code: Alles auswählen

    case 'acc_link':
        $user_id = request_var('u', 0);

        $sql = 'SELECT *
            FROM ' . USERS_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $user_row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
        if (!$auth->acl_get('u_acc_link') || !$user_row || $user_row['master_id'] != $user->data['user_id'] || !check_link_hash(request_var('hash', ''), 'acc_link'))
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        include($phpbb_root_path . 'includes/acp/auth.' . $phpEx);

        $auth_admin = new auth_admin();
        if (!$auth_admin->ghost_permissions($user_id, $user->data['user_id']))
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        add_log('admin', 'LOG_ACL_TRANSFER_PERMISSIONS', $user_row['username']);

        $message = sprintf($user->lang['PERMISSIONS_TRANSFERRED'], $user_row['username']) . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
        trigger_error($message);

    break; 
Finde in der language/de/common.php:

Code: Alles auswählen

'USE_PERMISSIONS'        => 'Berechtigungen des Benutzers testen', 
danach füge ein:

Code: Alles auswählen

'USE_ACC_LINK_PERMISSIONS' => 'Berechtigungen des verlinkten Accounts testen', 
bzw. in allen von dir / deinen Usern benutzen Sprachen. Beachte auch: KB:utf8bom.

Speichere alle Dateien und leere den Cache.

Im ACP kannst du nun die neue Berechtigung aktivieren.
Der Master-Account (also der Erzieungsberechtigte) kann nun die Berechtigungen seiner "Sekundär"-Accounts (also der Kinder) testweise übernehmen und auschecken, indem er im Profil des fraglichen Accounts diese Berechtigungen übernehmen kann. Zurück geht es dann im eigenen Persönlichen Bereich mittels des Links: Berechtigungen wiederherstellen

Re: Autom. Userrechte auf andere User übertragen

Verfasst: 11.03.2012 20:38
von PC-Junky
Danke Miriam. :) Das klingt schon mal sehr vielversprechend. Es ist zwar noch ein wenig zu früh um deinen Vorschlag einzubauen aber ich hatte auch nicht gedacht, daß ich von jetzt auf eben entsprechende Vorschläge hier bekomme.

-----

@ Alle

Über weitere Vorschläge würde ich mich dennoch freuen. :)