To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - First Admin Always Admin

krystianr - 09-06-2010, 16:07
Temat postu: First Admin Always Admin
First Admin Always Admin

Użytkownik podany przy instalacji forum na zawsze będzie posiadał prawa administratorskie


Kod:
############################################

Keep main admin, admin hack for phpbb (www.phpbb.com)

by Tom Brasington.
Mod Adpated : krystianr < krystianr93@wp.pl    > Krystian Rudnicki www.krystianr.xaa.pl
Visit me at www.2c2d.co.uk
Also visit: www.phpbbhacks.com
############################################
This hack means if another admin or a moderator using the
mod panel tries to make the first admin not an admin, it will
instantly make the first admin an admin again preventing loss
of control.
############################################
Plików do edycji: 1
Czas: 1 minuta
Poziom: Prosty

############################################


Co modyfikacja potrafi:
:arrow: Jeśli na forum loguje się admin i jego user_level (pole w tabeli phpbb_users, odpowiada za poziom użytkownika - jego możliwości) nie jest równy 1 (1 to administrator) to automatycznie zostaje wykonane zapytanie do bazy, które z powrotem przywraca adminowi prawa.

Pozdro dla Matteo, kevin_ i Bucu za pomoc :)

Matteo - 09-06-2010, 16:24

Zawsze można "prawa" usunąć poprzez bazę danych i wtedy taka modyfikacja jest zbędna ;) .
Ernix - 09-06-2010, 16:33

a mi to nie dziala, robie tak

Kod:
-------[Otwórz /functions.php]-------

-------[Znajdź]-------

    //
    // Show 'Board is disabled' message if needed.
    //
    if ( $board_config['disable_type'] == 1 && $userdata['user_level'] != ADMIN && !defined('IN_LOGIN') )
    {
        if ( $board_config['board_disable'] == 'db_backup_progress' )
        {
            if ( $board_config['db_backup_time'] < (CR_TIME - 300) )
            {
                update_config('board_disable', '');
                update_config('disable_type', '');
            }
            else
            {
                message_die(GENERAL_MESSAGE, $lang['Board_disable'] . '<br /><br />' . $lang['Reason'] . ': Database backup in progress please wait few seconds.');
            }


-------[Dodaj Po]-------

 $sql = "UPDATE " . USERS_TABLE . "
     SET user_level = 1
  WHERE user_id = 2";
  if (!$db->sql_query($sql))
  {
        message_die(GENERAL_MESSAGE, 'Unable to access the Users Table.');
  }


I inna osoba może mi zabrać administratora

Mam to przez baze zrobic czy wkleić kod w ftp?

krystianr - 09-06-2010, 18:03

Uwaga ! Aktualizacja moda w 1 poście
MagicalFire - 09-06-2010, 19:12

Matteo, wydaje mi sie ze jednak sie nie da
to jest cos takiego jak w phpBB3

Polaczek - 09-06-2010, 19:24

MagicalFire, a pole user_level?
Ernix - 09-06-2010, 19:24

Pomoże mi ktos?
krystianr - 09-06-2010, 21:28

Ernix napisał/a:
a mi to nie dziala, robie tak

Kod:
-------[Otwórz /functions.php]-------

-------[Znajdź]-------

    //
    // Show 'Board is disabled' message if needed.
    //
    if ( $board_config['disable_type'] == 1 && $userdata['user_level'] != ADMIN && !defined('IN_LOGIN') )
    {
        if ( $board_config['board_disable'] == 'db_backup_progress' )
        {
            if ( $board_config['db_backup_time'] < (CR_TIME - 300) )
            {
                update_config('board_disable', '');
                update_config('disable_type', '');
            }
            else
            {
                message_die(GENERAL_MESSAGE, $lang['Board_disable'] . '<br /><br />' . $lang['Reason'] . ': Database backup in progress please wait few seconds.');
            }


-------[Dodaj Po]-------

 $sql = "UPDATE " . USERS_TABLE . "
     SET user_level = 1
  WHERE user_id = 2";
  if (!$db->sql_query($sql))
  {
        message_die(GENERAL_MESSAGE, 'Unable to access the Users Table.');
  }


I inna osoba może mi zabrać administratora

Mam to przez baze zrobic czy wkleić kod w ftp?

cofnij to i pobierz moda z 1 postu bo zrobiłem poprawke i teraz mod chodzi.

Bucu - 09-06-2010, 21:40

Kod:
    if ($userdata['user_id'] == 2 && $userdata['user_level'] != 1)
    {
    $sql = "UPDATE " . USERS_TABLE . "  SET user_level = 1 WHERE user_id = 2";
    if (!$db->sql_query($sql))
      {
            message_die(GENERAL_MESSAGE, 'Unable to access the Users Table.');
      }
    }



takie cos dodac (zamiast kodu z instrukcji), i wtedy bedzie wywolywane tylko wtedy kiedy glowny admin się będzie logował (id == 2) i będzie miał inny user_level niz 1, a nie za kazdym wywolaniem init_userprefs()

krystianr - 10-06-2010, 07:22

Aktualizacja moda w 1 poście
Jasek - 25-07-2010, 11:57

a jak dodać kilku adminów?

if ($userdata['user_id'] == 2,3 && $userdata['user_level'] != 1)
{
$sql = "UPDATE " . USERS_TABLE . " SET user_level = 1 WHERE user_id = 2,3 ";
if (!$db->sql_query($sql))
{
message_die(GENERAL_MESSAGE, 'Unable to access the Users Table.');
}
}

tak?

Bucu - 25-07-2010, 12:06

nie tak :P

Kod:
if (in_array($userdata['user_id'], array(2,3))  && $userdata['user_level'] != 1)
{
$sql = "UPDATE " . USERS_TABLE . " SET user_level = 1 WHERE user_id = 2,3 ";
if (!$db->sql_query($sql))
{
message_die(GENERAL_MESSAGE, 'Unable to access the Users Table.');
}
}

Piwulek - 09-01-2014, 12:50

Pytanie...
Załóżmy, że zainstaluję ten mod, dam uprawnienia admina innym kilku użytkownikom, to inni admini nie będą mogli zrzucić moich uprawnień. A czy nie będą mogli usunąć mojego konta ??

Czy może dodatkowo powinienem dołożyć to:
http://www.przemo.org/php...pic.php?t=63485



Powered by phpBB modified by Przemo © 2003 phpBB Group