Владислав
Группа - несколько субъектов объединенных общими характеристиками
В общем, речь про группы пользователей, в контексте форумного приложения.
Anonymous
Примеры групп приведи
Anonymous
2 хватит
Anonymous
Примера
Anonymous
Что бы я понимал, что ты подразумеваешь под этим
Владислав
Что ты написал, то и подразумеваю.
Владислав
админ, модер, юзер и т.п.
Anonymous
Это роли
Владислав
ОК.
Anonymous
Для каждого участника - своя роль
Anonymous
Есть группа ролей, группа мандаринов, группа анимэшников
Владислав
Для каждого участника - своя роль
Но мы имеем возможность задать несколько ролей.
Владислав
На многих форумных движках так.
Anonymous
Так это список ролей
SarcasmIO
Но мы имеем возможность задать несколько ролей.
ну у тебя и будет m2m связь через доп таблицу
Anonymous
Группой они обозначены из метода реализации
Anonymous
Из за*
Владислав
Anonymous
Так
Anonymous
Значит у ролей есть своя таблица
Владислав
Там 4 таблицы всего.
Владислав
Две для m2m и две для моделей.
Anonymous
В ней и задай приоритет (вес)
Anonymous
Одна из моделей роли?
Владислав
+
SarcasmIO
сделай скоупы
SarcasmIO
и воспользуйся @can
SarcasmIO
и блейд дириктивами
Владислав
Типа, чем больше доступа, та роль и главная?
Anonymous
+
В ней задай поле, с весом каждой роли или маски
SarcasmIO
все зависит от того что ты пилишь, может быть так что ветка или подраздел форума сама задает тебе правила
Anonymous
Сумму весов сравнивай
Владислав
В ней задай поле, с весом каждой роли или маски
Я не уверен, что это хорошее решение. Т.к. потом могут появиться новые группы, которые, например, я захочу определить в середину где-нибудь по весу.
Владислав
А всё будет битком )
SarcasmIO
у тебя по дефолту у роли должны быть определнные прописанные права
Anonymous
100, 500, 900
SarcasmIO
вроде админ может банить модеров, но не может банить админов или овнеров
Владислав
Нет, не трудно, просто костыльно как-то...
SarcasmIO
и когда ты добавляешь новую роль ты описываешь права для нее
Anonymous
С какого перепуга костыльно?
Anonymous
А как ты еще главность роли определишь?
Anonymous
Это ты знаешь, что админ круче модератора
Anonymous
Как ты это объяснишь системе?
Владислав
Владислав
Пока хз..
Anonymous
Так я тебе сказал как
Anonymous
Что тут думать
Владислав
Ну да, наверное, так и придётся делать.
Anonymous
Посмотрел на вес, понял, кто главный
Anonymous
Любой другой способ с вытаскиванием побочных таблиц тебе боком вылезет
SarcasmIO
просто посмотри на chmod и ему подобные
SarcasmIO
как делают побитовые маски доступа
Витебск 01
/^\d+$/
не помогло
Владислав
и когда ты добавляешь новую роль ты описываешь права для нее
Кстати, а это мысль тоже. Мб, создать определённые permission'ы.
Владислав
И по ним смотреть.
Владислав
Сейчас ещё подумаю...
Anonymous
А как ты определишь, какой пермишен важнее?
Владислав
А как ты определишь, какой пермишен важнее?
Эм, например, если только у меня будет расписана зависимость групп.
Владислав
Примерно, как в связанных списках )
Владислав
Но это уже извращение.
Anonymous
Эм, например, если только у меня будет расписана зависимость групп.
Ну и че, зависит например, запись в блокнотик от группы админа, а запись в листочек от модера, какая из групп важнее?
Владислав
Так запись расписана в обе стороны. Да, если конец найден не будет, то тогда плохо.
Anonymous
Запись чего? Твоей системе ни о чем твои маски и роли не говорят
Anonymous
Система оперирует числами
Anonymous
На секундочку, если ты вдруг не знал
Anonymous
Все эти подписи для тебя, а не для системы
Владислав
Замечание про оперирование числами чёт не к месту сейчас. Мы не на ассемблере пишем и не с памятью работаем. Понятно, что если мне потребуется определить приоритет без указания веса, то придётся выстроить иерархию и в конечном итоге всё равно каждая роль будет иметь своё число.
Владислав
Я вообще хотел узнать, есть ли способ получше, без магических чисел типа указания веса.
Anonymous
А причем тут ни к месту, нужно помнить, что ты общаешься с компьютером, а не с человеком и вся твоя иерархия, это набор цифр, а то, что ты пишешь на более высоком языке скриптования, не говорит ни о чем
SarcasmIO
способа получше не придумали
SarcasmIO
ты им пользуешься,осознавая это или нет, со времен unix like system
Anonymous
Я вообще хотел узнать, есть ли способ получше, без магических чисел типа указания веса.
Магические числа, это указание побитового сдвига или ячейки памяти, но никак не система весов
Anonymous
Ты с понятиями очень плохо дружишь, как я понимаю
Владислав
ОК, я помню. Но способы с хардкодом мне представляются быдлокодом.
Anonymous
Хардкод, если ты систему весов пропишешь в коде
Anonymous
Но твоя система весов находится а таблице
Anonymous
Ты в любой момент можешь обратится к базе и изменить ее на ходу