Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Sheer писал(а): ↑19.12.2018 18:10
Правильно указать параметры и правильно создать роль.
Проблема в том что это очевидно и в этом проблем нету. Я выдаю две роли(14 и 25). Роль 14 это role_name ROLE_FORUM_FULL и role_type f_ Роль 25 созданная мной и название указал я у нее role_type m_
Отправлено спустя 6 минут 25 секунд:
Sheer писал(а): ↑19.12.2018 17:52
В вашем случае только SQL-запросом, например
DELETE FROM phpbb_acl_users WHERE user_id=50 AND auth_role_id=1
Удалял запросом в базе удалилось но на форуме права остались
удалит все права этого пользователя и сбросит их в Нет, а так же удалит все присвоенные ему роли.
И похоже у вас там каша уже в базе.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Sheer писал(а): ↑19.12.2018 18:39
И похоже у вас там каша уже в базе.
Какая каша может быть в базе если функция $auth_admin->acl_set удаляет старые права без всяких проблем. Если выдать права $auth_admin->acl_set все норм работает а вот если я напрямую их впишу в БД их не будет хоть и они будут везде в таблицах. Так вы можете мне обьяснить почему при выдачи двух ролей разного типа выдается лишь одна удаляя предыдущею?
Отправлено спустя 18 секунд:
Может нужна другая функция либо дополнительные параметры?
Отправлено спустя 5 минут 2 секунды:
Я уже писал выше о том что если через БД выдать права либо удалить права то ничего не меняется но если через профиль пользователя применить его права то будут права из БД.
Отправлено спустя 2 минуты 26 секунд:
Если удалить права через Бд после чего проверить маску прав пользователя то можно увидеть что прав остались. Однако если же применить его права в профиле то применяться права из БД иными словами их не будет
Я не стоял у вас за спиной и не знаю, что вы там творите.
zabe1 писал(а): ↑19.12.2018 18:47
Какая каша может быть в базе
Могут быть дубликаты прав доступа, могут быть потерянные права доступа, могут быть некорректные записи в таблице phpbb_moderator_cacheЭто можно проверить при помощи [3.1][3.2] [dev] STK for phpBB 3.2.x & 3.1.x
Установите форум на локальном компьютере, создайте пользователя и экспериментируйте на чистой БД.
Отправлено спустя 14 минут 17 секунд:
И еще... в папке /cache создаются два файла помимо прочих data_acl_options.php и data_role_cache.php. Это ни о чем не говорит?
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Sheer писал(а): ↑19.12.2018 19:15
И еще... в папке /cache создаются два файла помимо прочих data_acl_options.php и data_role_cache.php. Это ни о чем не говорит?
global $auth, $cache;
$cache->purge();
// Clear permissions
$auth->acl_clear_prefetch();
cache_moderators();
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Давайте так что было всем понятно я обьясню ситуацию а вы уже подскажите как ее решить. Есть игровой сервер форум которого собственно и создан. Стоит задача. Выдавать права определенному пользователю на определенный форум и так же удалять этим права в автоматическом режиме с помощью самого сервера. Сервер дает возможность отправлять как HTTP запросы так и SQL запросы. Как это лучше реализовать? Каково ваше мнение?
Подключать "родные" функции phpBB и пользоваться ими.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
zabe1 писал(а): ↑19.12.2018 19:44
Ну тогда откидаем вариант с SQL запросами
Почему. Сам движек их вовсю использует. А иначе никак. Просто кешированные данные следует обновлять. Что тот же движек и делает.
zabe1 писал(а): ↑19.12.2018 19:44
Что дальше делать с информацией?
Сообщить их функции acl_set();
Общие ошибки новичков (07.11.2005) & Как задавать вопросы Мини FAQ Если ничто другое не помогает, прочтите, наконец, инструкцию! "Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения". Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Sheer писал(а): ↑19.12.2018 21:32
Почему. Сам движек их вовсю использует. А иначе никак. Просто кешированные данные следует обновлять. Что тот же движек и делает.
Я имел введу отправлять их напрямую с сервера.
Отправлено спустя 1 минуту 47 секунд:
Sheer писал(а): ↑19.12.2018 21:32
Сообщить их функции acl_set();
Она удаляет старые роли и прописывает новые. По вашему совету тестировал на чистой БД та же проблема. Ставил сначала роль 14 ROLE_FORUM_FULL потом роль 10 ROLE_MOD_FULL в результате 10 выдалось а 14 нету. По отдельности все работает.
zabe1, ну и каша у Вас в голове...
Роль - это какой-то предустановленный админом набор прав. Соответственно одной группе/пользователю может быть назначена только ОДНА роль (точнее по одной в каждом типе прав - форумные, пользовательские, глобальные)
Если Вам нужно дать юзеру права, которые у Вас прописаны в роли1 или в роли2, то вам нужно в админке создать НОВУЮ роль3 и выставить для нее нужный набор прав, которые есть в роли1 или роли2, и давать юзеру соответственно роль3, а не последовательно роль1 и роль2 как вы пытались сделать сейчас
Другой вариант - отказаться от ролей и манипулировать только самим правами. Но тут возникнет другая проблема - если Вы заходите всем юзерам, у которых есть какое-то право изменить это - придется вручную их (юзеров) выискивать. Т.е., с Вашим уровнем понимания системы прав доступа, так делать не нужно.
Pazh писал(а): ↑20.12.2018 12:44
Роль - это какой-то предустановленный админом набор прав. Соответственно одной группе/пользователю может быть назначена только ОДНА роль (точнее по одной в каждом типе прав - форумные, пользовательские, глобальные)
Есть пользовательские u_ форумные f_ модераторские m_ и администраторские a_ роли. В моем случае я выдаю форумную и модераторскую роль отдельному пользователю на отдельный форум.
Отправлено спустя 29 секунд:
Pazh писал(а): ↑20.12.2018 12:44
Если Вам нужно дать юзеру права, которые у Вас прописаны в роли1 или в роли2, то вам нужно в админке создать НОВУЮ роль3 и выставить для нее нужный набор прав, которые есть в роли1 или роли2, и давать юзеру соответственно роль3, а не последовательно роль1 и роль2 как вы пытались сделать сейчас
Если выдать эти роли вручную через адм панель всё выдается без проблем.
zabe1 писал(а): ↑20.12.2018 0:27
Ставил сначала роль 14 ROLE_FORUM_FULL потом роль 10 ROLE_MOD_FULL в результате 10 выдалось а 14 нету. По отдельности все работает.
При назначении модераторской или пользовательской роли пользователю/группе в переменную $auth функции acl_set штатно передается массив фактических прав данной роли с префиксом m_ или u_ соответственно, т.е. заполнение массива прав даже при указании id роли обязательно
Pazh писал(а): ↑20.12.2018 14:05
При назначении модераторской или пользовательской роли пользователю/группе в переменную $auth функции acl_set штатно передается массив фактических прав данной роли с префиксом m_ или u_ соответственно, т.е. заполнение массива прав даже при указании id роли обязательно
Выходит мне нужно указать все права роли в $auth при выдачи этой роли?