Forumlar / National / Russian / Тех. поддержка / Баг в правах при создании категории

Yusupov
#1 2015-03-07 11:24

Приветствую всех разработчиков!

Обнаружил такой неприятный момент. Если в структуре любого модуля создать категорию с кодом 'a', то права для этого модуля устанавливаются дважды! Посмотрел в таблице cot_auth, там появляются дублирующие записи для прав на модуль. Нужно обязательно запретить использование кода 'a' при создании категорий!

Также заметил, что при создании своей структуры для определенного плагина (при разработке), то для этой структуры не создаются права (функция cot_structure_add() )! На мой взгляд это не гибко. Предлагаю добавить возможность устанавливать права не только для струткур в модулях, но и для плагинов тоже.

Macik
#2 2015-10-31 17:17

Лучше все же сразу открывать тикетна гитхабе, а то теряется инфромация.
Создал заявку №1443

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#3 2015-11-01 08:56

macik - не спеши с этим багом, с нем не все так прозрачно. стоит подумать.

так как мы заменим a на __def - и потом придет ответ что ошибка с этой категорией.

 

права  в плагинах - специально не устанавливаются. Я пытался это сделать гибко, однако не вышло - это был единственноый вариант. С ним и траст тогда согласился.

В целом добавив плагинам права = это автоматически убирает практически все различия между плагинами и модулями. А значит, надо объединять апи. Это весомая работа. но имхо необходимая

Добавлено 1 час спустя:

а вопрос там в функции cot_auth('plug', 'plugname', 'RWA') против cot_auth('page', 'a', 'RWA') против cot_auth('page', 'catname', 'RWA')

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты

Bu konu esclkm tarafından düzenlendi(2015-11-01 10:24, 8 yıllar önce)
Macik
#4 2015-11-01 18:11

Я не тороплюсь. Просто немного запутался. Тут заявлено 2 «бага». Давай по пунктам:

  1. Дублирование записей о правах при создании категории «а». Оно и логично одна запись это админская (общий доступ к модулю), вторая это доступ к категории. Это баг. Таких узких мест в системе (когда нельзя использовать некоторые ключевые слова) много. Речь здесь, на сколько я понимаю, не идет о изменении «а» на «__def», а о запрете использования некотрых слов в коде категории.
  2. При создании категории для плагина (и именно для плагина) через `cot_structure_add` не создаются права. Это объяснимо тем, что по умолчанию они создаются только для модулей.
    Тут есть 2 момента:
      а). Надо разделять общие права на доступ к плагину и права на доступ к конкретной его категории
      б). Из приведенных тобой вариантов логичнее (для категории) использовать cot_auth('page', 'catname', 'RWA') — по аналогии с модулями (тем более речь идет о их возможном объединении в будущем).
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#5 2015-11-01 18:18

1/ кстати галлантное решение - запретить "a" - хотя и грубое)

2б - нельзя. ведь можно нарушить совместимость. и еще усугубить, если код плагина и модуля одинаковые. 

единственное решение для плагинов выглядит сейчас так:

cot_auth('plug', 'plugname', 'RWA', 'catname')  - а это выглядит ужасно!

Добавлено 4 минуты спустя:

хотя может сделать хитрый обработчик внутри auth

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Macik
#6 2015-11-01 18:32
#41153 esclkm:

1/ кстати галлантное решение - запретить "a" - хотя и грубое)

Да, об этом и речь. У нас в системе много не гласных правил на именование переменных / плагинов / категорий. (например нельзя сощдать плагин с именем admin). Здесь (конкретно в этом месте) мы просто эти правила формализуем.

2б - нельзя. ведь можно нарушить совместимость. и еще усугубить, если код плагина и модуля одинаковые. 

На сколько я помню у нас не может одновременно работать плагин и модуль с одним кодом. Поэтому конфликта здесь не будет.

единственное решение для плагинов выглядит сейчас так:

cot_auth('plug', 'plugname', 'RWA', 'catname')  - а это выглядит ужасно!

Добавлено 4 минуты спустя:

хотя может сделать хитрый обработчик внутри auth

Это будет костылем. Надо решать на более системном уровне, и по возможности максимально унифицировать.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F