Zugriff nur für registrierte Benutzer

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Zugriff nur für registrierte Benutzer

Beitrag von Walter91 »

Ich habe mir ein kleines Programm geschrieben auf das nur die Gruppen:
Administratoren, Moderatoren und Registrierte Benutzer Zugriff haben sollen.
Gäste, Bots und Kürzlich registrierte Benutzer usw. sollen keinen Zugriff haben !

Aus der phpbb-Wiki habe ich das mit den folgenden Code für Administratoren getestet. (funktioniert)
Kann jemand helfen wie ich das für die gewünschten Gruppen ändern muss ?

Code: Alles auswählen

// Prüfen ob Admin
if (!isset($user->data['session_admin']) || !$user->data['session_admin'])
{
	login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS']);
}

// Wenn kein Admin
if (!$auth->acl_get('a_'))
{
	trigger_error('NO_ADMIN');
}
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 12113
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Zugriff nur für registrierte Benutzer

Beitrag von Crizzo »

Hi,

für Moderator-Rechte gilt:

Code: Alles auswählen

if ($auth->acl_getf_global('m_'))
{
} 
Dem zu Folge: if Admin or Mod:

Code: Alles auswählen

if ($auth->acl_get('a_') || $auth->acl_getf_global('m_'))
{
} 
und ob es ein registrierter Nutzer ist:

Code: Alles auswählen

if ($user->data['user_id'] == ANONYMOUS)
{
// Code, wenn Benutzer nicht angemeldet ist
}
else
{
// Code, wenn Benutzer angemeldet ist
} 
Siehe: https://wiki.phpbb.com/Deutsch:Vorlage_ ... euen_Seite
https://wiki.phpbb.com/Tutorial.Permissions

Grüße
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Zugriff nur für registrierte Benutzer

Beitrag von Walter91 »

@BlackHawk87
Danke für deine schnelle Antwort. Ist aber noch nicht ganz was ich suche.
Ich hatte das auch schon so probiert:

Code: Alles auswählen

    if ($user->data['user_id'] == ANONYMOUS)
    {
    // Code, wenn Benutzer nicht angemeldet ist
    }
    else
    {
    // Code, wenn Benutzer angemeldet ist
    } 
Damit erwinge ich zwar den Login, aber Kürzlich Registrierte Benutzer sehen das immer noch !
Wie kann ich diese Gruppe rausschmeißen ?
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Zugriff nur für registrierte Benutzer

Beitrag von Walter91 »

Funktioniert leider immer noch nicht.
- Habe den Code in die /includes/functions.php eingefügt wie im Beitrag beschrieben.
- In meine php: include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
- Im Template: <!-- IF GROUP_ID == 2 AND S_USER_LOGGED_IN -->
(2 für Gruppe registrierte Benutzer)
- Template-Cache geleert

Gruppe kürzlich registrierte hat aber immer noch Zugriff.
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 12113
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Zugriff nur für registrierte Benutzer

Beitrag von Crizzo »

Das ist auch kein Wunder.

Die "kürzlich registrierte Benutzer"-Gruppe ist ein Zusatz! D.h. die Nutzer sind parallel auch noch in der "Registrierten"-Gruppe. D.h. du musst in deiner Abfrage sicher stellen, dass die Benutzer nicht in der "kürzlich registrierte Benutzer"-Gruppe sind. ;)

Grüße
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Zugriff nur für registrierte Benutzer

Beitrag von Walter91 »

@BlackHawk87
Ich weis das die erst mal in beiden Gruppen sind. Ich finde nur die Lösung nicht.

Ich habe das in meinem Testforum so eingestellt, dass Benutzer die mindestens einen Beitrag geschrieben haben automatisch aus der Gruppe Kürzlich registrierte entfernt werden. Geht ja wunderbar im Adminbereich einzustellen.

Gibt es nicht eine einfache Lösung um zum Beispiel den folgenden Code um die Gruppe Kürzlich registrierte zu erweitern? Mit diesem Code hält man ja Gäste und Bots sehr gut raus.

Code: Alles auswählen

if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] )
        {
            login_box('', $user->lang['LOGIN']);
        } 
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Zugriff nur für registrierte Benutzer

Beitrag von BNa »

Wenn Deine Newly Registrered Users schon mit 1nem Post aus der Gruppe ausscheiden, kannst Du es so machen:

Code: Alles auswählen

if (($user->data['user_id'] == ANONYMOUS) || $user->data['is_bot'] || ($user->data['user_posts'] == 0))
        {
            login_box('', $user->lang['LOGIN']);
        } 
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Zugriff nur für registrierte Benutzer

Beitrag von Walter91 »

@BNa
Habe es gerade getestet. Super, das geht :grin:
Danke euch allen für Eure schnelle Hilfe !

Wenn ich noch was fragen darf.
Was muss ich anstatt von "login_box" einsetzen, damit eine Meldung erscheint:
"Du hast keine ausreichenden Rechte diesen Bereich zu betreten"
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Zugriff nur für registrierte Benutzer

Beitrag von BNa »

Finde

Code: Alles auswählen

login_box('', $user->lang['LOGIN']);
Dahinter füge ein

Code: Alles auswählen

trigger_error ('Du hast keine ausreichenden Rechte diesen Bereich zu betreten.');
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“