Seite 1 von 2
aktivierungslink "Nicht berechtigt" nach update au
Verfasst: 31.07.2005 16:26
von schnibi
guten tag.
wenn ein "normaler" user sich ein passwort zusenden läßt da er seins vergessen hat bekommt er einen aktivierungslink gesendet.
wenn er diesen link klickt kommt dann ein meldung vom board daß er nicht berechtigt sei.
wenn jedoch der admin seinen link nutzt funtzt es.
im board ist Account-Freischaltung aktivieren durch den admin aktiviert.
ich denke es liegt am neuen code in der 2.0.17 version in usercp_activate.php
Code: Alles auswählen
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
}
wozu wurde der code geändert? kann ich den einfach wieder rausnehmen?
erbitte hilfe
danke und schüß
schnibi
Verfasst: 31.07.2005 16:37
von kratzer54847
ist ja auch logisch:
durch den Klick auf den Link in der E-Mail müssen sich die User freischalten, wenn "Freischaltung per E-Mail" aktiviert ist. Da du aber Freischaltung durch den Admin aktiviert hast, ist es nur logisch, dass der Link dann nicht mehr funktioniert!

Verfasst: 31.07.2005 16:40
von schnibi
hi,
die user müssen sich aber doch selbstständig ein neues passwort "freischalten" lassen können wenn sie ihr altes vergessen haben
Verfasst: 31.07.2005 16:41
von kratzer54847
du hast doch "Freischaltung durch den Admin" aktiviert

Verfasst: 31.07.2005 16:49
von schnibi
ja, nur wie soll ich als admin feststellen, daß sich jemand ein neues passwort hat zusenden lassen ?
ich als admin bekomme den aktivierungslink ja nicht
und wieso wurde das im code geändert?
durch den admin freischalten funtzte doch vorher auch.
nur konnte eben vorher jeder user sein geändertes passwort selbst freischalten wenn er ein freigeschalteter user war.
Verfasst: 01.08.2005 16:12
von Rantanplan
Heute haben sich bei mir auch die ersten Nutzer gemeldet, bei denen dieses Problem aufgetreten ist. Momentan sehe ich es (auch) so, dass das ein Fehler ist, der beim Update nach 2.0.17 reingerutscht ist.
du hast doch "Freischaltung durch den Admin" aktiviert
Ja, aber:
- Warum wird dann überhaupt eine E-Mail mit dem Link versandt?
- Es kann doch kaum gewollt sein, dass der Admin jeden Nutzer aktivieren muss, der sein Passwort geändert hat.
Werde mir das heute Abend nochmal genauer ansehen.
Verfasst: 01.08.2005 17:46
von Saint
Ich hab das auch mal bei mir an einem Board getestet - ich komme zum selben Ergebnis - "Nicht berechtigt".
Das scheint wirklich ein Bug zu sein, mit der Einstellung "Freischaltung durch den Admin" kann das nichts zu tun haben. Da überzeugen die Argumente von Rantanplan.
Gruß
Saint
*edit*
@schnibi: Den Code, den Du in Deinem ersten Posting rausgesucht hast ist dafür verantwortlich.
Aus dem Changelog zur 2.0.17:
Das ist wohl nicht ganz zuende gedacht worden...
Verfasst: 01.08.2005 21:42
von Rantanplan
Ok, so wie ich das sehe, hat die Änderung bei 2.0.17 den Zweck, zu verhindern, dass jemand den act_key errät, und sich somit selbst freischaltet.
Da ein Potentieller Betrüger im Fall von "Freischaltung durch den Admin" den Act-Key allerdings nicht zu Gesicht bekommt, müsste er ihn -wie oben bereits erwähnt- erraten, und da gibt es 33^5 = 1291467969 Möglichkeiten
Oder fällt jemanden noch ein anderer Nutzen der neuen Codezeilen ein?
Verfasst: 02.08.2005 11:00
von Rantanplan
Hier mal -ohne Gewähr- ein Workaround, der im .com Forum die Runde macht:
ersetze
Code: Alles auswählen
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
}
durch:
Code: Alles auswählen
if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN && $userdata['session_logged_in'])
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
}
elseif ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN && $row['user_newpasswd'] == '')
{
redirect(append_sid("login.$phpEx?redirect=profile.".$phpEx."&mode=activate&u=".$row['user_id']."&act_key=".trim($HTTP_GET_VARS['act_key']), true));
}
Muss mir das aber erstmal durch den Kopf gehen lassen...
Verfasst: 02.08.2005 11:26
von Saint
Das funktioniert so, hab ich gerade mal probiert. Angeblich soll das den Entwicklern mittlerweile bekannt sein und dann auch offiziell in der 2.0.18 gefixt werden.
Hier der Link zum .com Topic:
http://www.phpbb.com/phpBB/viewtopic.ph ... 58#1692058
Gruß
Saint