Seite 1 von 2

Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 14:18
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');
}

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 14:35
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

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 14:51
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 ?

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 14:58
von Crizzo

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 19:25
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.

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 19:49
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

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 19:58
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']);
        } 

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 20:58
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']);
        } 

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 21:20
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"

Re: Zugriff nur für registrierte Benutzer

Verfasst: 02.02.2013 21:42
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.');