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

Poszukiwania - [szukam] Download tylko dla jednej grupy

bortysz - 07-02-2010, 10:40
Temat postu: [szukam] Download tylko dla jednej grupy
Witam, kiedyś znalazłem moda , który ogranicza ściąganie z download tylko dla danej grupy!
Czyli jedna grupa może korzystać ze ściągania, proszę o podpowiedź, linka gdzie to mogę znaleźć
Pozdrawiam

szczupak_xD - 07-02-2010, 13:16

otwórz pafiledb/pafiledb.php
Znajdź:
Kod:
if ( !defined('IN_PHPBB') )
{
    die("Hacking attempt");
}

dodaj za:
Kod:
$dload_group = X;

$sql = "SELECT ug.user_id
        FROM " . USER_GROUP_TABLE . " ug
        WHERE group_id = $dload_group";
    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
    }
        while ($row = $db->sql_fetchrow($result))
        {
                $dload_access = in_array( $userdata['user_id'], $row );
        }
        if ($dload_access != TRUE && $userdata['user_level'] != 1)
        {
                message_die(GENERAL_MESSAGE, 'Nie masz dostępu do download');
        }

W pierwszej linii, w zmiennej $dload_group wstaw ID grupy, która ma mieć dostęp (np. 5). Można to sprawdzić w tabeli {prefix}_groups, lub wykonując zapytanie w phpmyadminie:
Kod:
SELECT group_id FROM {prefix}_groups WHERE group_name = 'tu wstaw nazwę grupy';


Kod:
sposób wykonany przez 'MakArios '

bortysz - 24-02-2010, 21:19

W bazie znalazłem id grupy:

wklepałem tak:

Kod:

$dload_group = 5129;

$sql = "SELECT ug.user_id
        FROM " . USER_GROUP_TABLE . " ug
        WHERE group_id = $dload_group";
    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
    }
        while ($row = $db->sql_fetchrow($result))
        {
                $dload_access = in_array( $userdata['user_id'], $row );
        }
        if ($dload_access != TRUE && $userdata['user_level'] != 1)
        {
                message_die(GENERAL_MESSAGE, 'Tylko dla grupy Klubowicz');
        }


lecz niestety nie działa!

tzn nikt nie ma dostępu do download

gdzie popełniłem błąd?

jangcy - 16-02-2019, 11:28

Testowałem to na różnych ustawieniach grup i niestety nie działa.
Ale co ciekawe. Jak wpisałem grupę 1 (u mnie to anonymous) co wnioskuje że jest grupą niezalogowanych, to można było wejść na download bez logowania, a nie można było po zalogowaniu.
Więc może kierunek jest dobry, tylko gdzieś jest błąd.

[ Dodano: 21-02-2019, 10:29 ]
Ta wersja zezwala na dostęp do działu download tylko jednemu użytkownikowi. Niestety nie akceptuje więcej jak jednego ID użytkownika w miejscu "X". Nie wiem jak to obejść. Jakby działało to można by wpisać listę użytkowników z dostępem. Jak nie ma ich dużo to nie była by tak ciężko to zrobić.
Kod:

$dload_users = X;

$sql = "SELECT ug.user_id
        FROM " . USERS_TABLE . " ug
        WHERE user_id = $dload_users";
    if ( !($result = $db->sql_query($sql)) )
    {
        message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql);
    }
        while ($row = $db->sql_fetchrow($result))
        {
                $dload_access = in_array( $userdata['user_id'], $row );
        }
        if ($dload_access != TRUE && $userdata['user_level'] != 1)
        {
                message_die(GENERAL_MESSAGE, 'Nie masz dostępu do download');
        }


[ Dodano: 21-02-2019, 10:51 ]
Nie wiem gdzie w oryginalnym kodzie jest użyta informacja o ID grupy, gdzie jest użyty warunek przyrównujący ID grupy do ID usera czy coś w tym rodzaju...



Powered by phpBB modified by Przemo © 2003 phpBB Group