Как создать права для групп в своем модуле?

Тема в разделе "DLE", создана пользователем danneo, 30 дек 2013.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.418
    Симпатии:
    109
    Как правильнее с точки зрения дальнейшего обновления создать права доступа групп пользователей к разным функциям модуля?
     
  2. Doctor_zlo

    Doctor_zlo

    Moderator
    Регистр.:
    25 апр 2008
    Сообщения:
    461
    Симпатии:
    978
    Я особо крупных модулей не делал, а в тех что делал для себе, всегда старался обходиться стандартными средствами движка.
    По большому счету всегда пользовался в шаблоне модуля тегами
    [group=4]Здесь вывожу контент и функциональность для посетителей[/group]
    [group=6]Здесь вывожу контент и функциональность для группы 6 например типа випы, т.е. к примеру копия контента group=4+какой-то скрытый контент группы[/group]
    [group=4]Здесь вывожу контент и функциональность для админов(к примеру копия контента group=4+кнопки редактировать изменить+какой-то скрытый контент)[/group]
    плюс в таком подходе, что обновления движка кардинально не сказываются на работе модуля
    кстати в самом dle login.tpl робит по такому же принципу
     
    Последнее редактирование: 30 дек 2013
    Attyla нравится это.
  3. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.418
    Симпатии:
    109
    дак это для контента - tpl файлы. А мне нужно определять в php, если у юзера нет прав, то и скрипт не выполнять, а ему выводить сообщение. Например, загрузка картинки, редактирование записи, добавление записи и т.п.
     
  4. Doctor_zlo

    Doctor_zlo

    Moderator
    Регистр.:
    25 апр 2008
    Сообщения:
    461
    Симпатии:
    978
    PHP:
    $user_group get_vars"usergroup" );

    if( ! 
    $user_group ) {
       
    $user_group = array ();
      
       
    $db->query"SELECT * FROM " USERPREFIX "_usergroups ORDER BY id ASC" );
      
       while ( 
    $row $db->get_row() ) {
        
         
    $user_group[$row['id']] = array ();
        
         foreach ( 
    $row as $key => $value ) {
           
    $user_group[$row['id']][$key] = $value;
         }
      
       }
       
    set_vars"usergroup"$user_group );
       
    $db->free();
    }
    .......

    if(
    $member_id['user_group'] == x)
    {....}
    if(
    $member_id['user_group'] == y)
    {....}
    else
    {....}
     
    Последнее редактирование: 31 дек 2013
  5. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.418
    Симпатии:
    109
    А так?... так видел, да. Но я о том, чтобы в админке настраивать права. А потом в скрипте проверять, как в ДЛЕ, когда идет проверка прав. Ведь у меня пока не определено, ни групп, ни прав им.
    У меня мысля такая: брать кэш-файл usergroup и туда добавлять в массив свои настройки...
     
  6. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.037
    Никак... Все файлы админ-панели, БД, файлы кеша и прочее обновляются после обновления и заменяются на новые, либо непредсказуемо изменяются.

    Единственный способ защититься - выносить всё за пределы ДЛЕ. Т.е. минимизировать правки ДЛЕ и его базы, всё хранить в БД модуля и его конфигах.

    Я использую БД ДЛЕ, но очень аккуратно (приходит с опытом). При этом все настройки выношу в модули. Т.е. те же настройки прав доступа групп настраиваются в модуле, а не в админке ДЛЕ. Но лучше даже этого не делать, а создать отдельную таблицу БД.