temoon Опубликовано 17 Августа 2005 Жалоба Поделиться Опубликовано 17 Августа 2005 По умолчанию все маски, привязаные к определенной группе, работают по принципу "лучшие права", т.е. если у одной маски нет прав на просмотр определенного раздела, а у другой есть, то группа все равно может просматривать этот раздел. Говоря на языке электронщиков, маски работают по алгоритму OR (логическое ИЛИ). В некоторых случаях, например при такой структуре пользователей, как на моем форуме, это очень неудобно. Имея множество приватных разделов, чуть ли не для каждого приходится создавать свою маску. Привожу пример (очень приблизительный)... Есть отдельные форумы для каждого из родов войск - ВВС, МФ, Пехота. У пользователей есть "звания" - Рядовой, Майор и Генерал. Каждый пользователь состоит в каком-то роде войск. В каждом форуме родов войск есть приватные разделы, которые должны быть доступны только пользователям с определенным званием - для рядовых будут недоступны (невидимы) подфорумы для офицерского состава, а для майора и генерала - будут видны. В тоже время офицерам из ВВС нельзя просматривать форумы офицеров из Пехоты. Еще есть общий форум для генштаба, где общаются только Генералы. Казалось бы - нет ничего проще! Сделать маски "ВВС Рядовой", "ВВС Майор", "ВВС Генерал", "МФ Рядовой", "МФ Майор", ну и.т.д. Если же перестроить работу масок не по алгоритму OR, а по NOT (логическое отрицание), можно будет творить удивительные вещи. Например, для данного примера будет достаточно создать всего шесть масок доступа! Это будут: ВВС, МФ, Пехота, Рядовой, Майор, Генерал. Каждый пользователь получит по две маски - ВВС+Майор, или Пехота+Рядовой, или МФ+Майор. Для каждой из масок "родов войск" нужно будет "поставить все галочки" в панели распределения прав для масок доступа к определенному форуму (т.е. для маски ВВС нужно поставить все галочки для форума ВВС, для МФ - МФ и т.п.). Для масок "званий" нужно поставить галочки в каждом из форумов. Подфорумам офицерского состава дать доступ только Майорам и Генералам. Форуму командования поставить доступ только для Генералов, соответственно. Получается примерно так (очень приблизительно):Форум ВВС - Общий Форум ВВС - Офицеры +---------+--------+--------+--------+ +---------+--------+--------+--------+ | | Чтение | Запись | Загр. | | | Чтение | Запись | Загр. | +---------+--------+--------+--------+ +---------+--------+--------+--------+ | Рядовой | + | + | + | | Рядовой | | | | | Майор | + | + | + | | Майор | + | + | + | | Генерал | + | + | + | | Генерал | + | + | + | | ВВС | + | + | + | | ВВС | + | + | + | | МФ | | | | | МФ | | | | | Пехота | | | | | Пехота | | | | +---------+--------+--------+--------+ +---------+--------+--------+--------+ Форум МФ - Общий Форум МФ - Офицеры +---------+--------+--------+--------+ +---------+--------+--------+--------+ | | Чтение | Запись | Загр. | | | Чтение | Запись | Загр. | +---------+--------+--------+--------+ +---------+--------+--------+--------+ | Рядовой | + | + | + | | Рядовой | | | | | Майор | + | + | + | | Майор | + | + | + | | Генерал | + | + | + | | Генерал | + | + | + | | ВВС | | | | | ВВС | | | | | МФ | + | + | + | | МФ | + | + | + | | Пехота | | | | | Пехота | | | | +---------+--------+--------+--------+ +---------+--------+--------+--------+ Форум Пехота - Общий Форум Пехота - Офицеры +---------+--------+--------+--------+ +---------+--------+--------+--------+ | | Чтение | Запись | Загр. | | | Чтение | Запись | Загр. | +---------+--------+--------+--------+ +---------+--------+--------+--------+ | Рядовой | + | + | + | | Рядовой | | | | | Майор | + | + | + | | Майор | + | + | + | | Генерал | + | + | + | | Генерал | + | + | + | | ВВС | | | | | ВВС | | | | | МФ | | | | | МФ | | | | | Пехота | + | + | + | | Пехота | + | + | + | +---------+--------+--------+--------+ +---------+--------+--------+--------+ Форум Командования +---------+--------+--------+--------+ | | Чтение | Запись | Загр. | +---------+--------+--------+--------+ | Рядовой | | | | | Майор | | | | | Генерал | + | + | + | | ВВС | | | | | МФ | | | | | Пехота | | | | +---------+--------+--------+--------+ На настоящий момент, с там раскладом, рядовые могли бы просматривать офицерские форумы, а если сделать модификацию проверки маски доступа, то не смогут. И это ЗНАЧИТЕЛЬНО сократит кол-во масок. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 19 Августа 2005 Жалоба Поделиться Опубликовано 19 Августа 2005 Уже обсуждалось.Я предлагал подобный мод, но никто не заинтересовался.Но правда я не могу что-то найти ту тему Вообще я твоё длиннющее послание всё не читал (это тебе намёк на будущее - длинные посты никто не читает), но по-моему я предлагал как раз то что надо. Смысл моего мода заключался в следующем:Есть 2 типа масок доступа: по группе юзера и замещающие (override) маски.Смысл в том, что заменить замещающие маски на дополняющие.При этом основные права юзер получает по группе, а дополнительные (куда он ещё может заходить) добавлять через override с вводом мода само собой. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
OverHerz Опубликовано 19 Августа 2005 Жалоба Поделиться Опубликовано 19 Августа 2005 При этом основные права юзер получает по группе, а дополнительные (куда он ещё может заходить) добавлять через override с вводом мода само собой.а чем вторая группа юзера от этого тогда отличается? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
temoon Опубликовано 20 Августа 2005 Автор Жалоба Поделиться Опубликовано 20 Августа 2005 SongТвой мод - это не совсем то, о чем я спрашиваю. Все-таки длинный пост не просто так написан... Вот смотри (постараюсь в двух словах): когда открываем в админке маску для редактирования - перед нами куча галочек. Когда галочка в каком-либо месте поставлена - доступ будет, а если не поставлена - проверяются дополнительные маски. Это происходит по алгоритму OR: если у маски "А" есть доступ (1), а у маски "Б" его нет (0), то формула такая - 1 OR 0 = 1. Единица в ответе (истина) позволяет показать/писать/прилеплять файлы юзеру тот форум, для которого мы выставляем маску. Мое предложение: в этой же простой формуле заменить OR на AND (почему-то в первом посте я напиал NOT ), таким образом, формула с теми же значениями будет иметь другой результат - 1 AND 0 = 0 и будет равна единице только в случае, когда все операнды (они же поставленные "галочки" у каждой из масок) будут единицами для конкретного форума. Еще раз - если для одного и того же форума у наших масок будут стоять "галочки", то юзер его увидит/сможет писать/и т.п., если хотя бы у одной из масок не будет стоять "галочка" - юзер не увидит форум и т.п. Смысл для меня atm - найти в коде место, где происходит определение доступа юзера по маскам. Пытался копать файлы boards.php, forums.php в директории source - не удачно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
ImUgh Опубликовано 20 Августа 2005 Жалоба Поделиться Опубликовано 20 Августа 2005 temoon копать надо в направлении функции check_perms из functions.php а также смотореть как она используется в остальных модулях.(это верно для 1.3, как оно в двушке - я не знаю) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 21 Августа 2005 Жалоба Поделиться Опубликовано 21 Августа 2005 >> а чем вторая группа юзера от этого тогда отличается?тем что она может смотреть ещё один форум плюсом от той. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 Смысл моего мода заключался в следующем:Есть 2 типа масок доступа: по группе юзера и замещающие (override) маски.Смысл в том, что заменить замещающие маски на дополняющие.При этом основные права юзер получает по группе, а дополнительные (куда он ещё может заходить) добавлять через override с вводом мода само собой. Как обстоят дела или мод остался токо в голове =) ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 22 Мая 2007 Жалоба Поделиться Опубликовано 22 Мая 2007 2koloromТебе для какой версии форума? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 23 Мая 2007 Жалоба Поделиться Опубликовано 23 Мая 2007 1.3.1 =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 24 Мая 2007 Жалоба Поделиться Опубликовано 24 Мая 2007 Если ты придумаешь описание к модификации, т.е. прочитав которое пользователь поймёт чего он ставит и для чего это, я напишу её. Она несложная в принципе.На прошлом этапе, помнится, у меня на этом всё дело остановилось Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 25 Мая 2007 Жалоба Поделиться Опубликовано 25 Мая 2007 Та неаписать то напишу но понял что мою проблему сей мод нерешит - руками надоест менять групы. А если ненужно менять те групы а просто дополнительные маски будут считываться после маски группы и незапрещать то что разрешено групе а только открывать новые возможности.То ты правильно изложил. Есть 2 типа масок доступа: по группе юзера и замещающие (override) маски.Смысл в том, что заменить замещающие маски на дополняющие.При этом основные права юзер получает по группе, а дополнительные (куда он ещё может заходить) добавлять через override с вводом мода само собой. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Мая 2007 Жалоба Поделиться Опубликовано 28 Мая 2007 Та неаписать то напишу но понял что мою проблему сей мод нерешит - руками надоест менять групы.У меня дополнительные маски добавляют права, а не замещают. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 28 Мая 2007 Жалоба Поделиться Опубликовано 28 Мая 2007 Song Если дополняющяя маска то есть маска именно которая вешаеться на пользователя а не на групу небудет запрещать то что разрешено в маске группы, а только давать дополнительные возможности то именно эта фича нужна Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Мая 2007 Жалоба Поделиться Опубликовано 28 Мая 2007 Я тебе уже объяснил что нужно сделать, чтобы заполучить этот мод Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 29 Мая 2007 Жалоба Поделиться Опубликовано 29 Мая 2007 Модификация позволяет использовати маски доступа пользователей исключительно как дополнительные возможности. Маски которые присвоены группе будут иметь основоположный уровень доступа. Одним словом я запутался =( и как оно будет работать сам уже недоганяю =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 30 Мая 2007 Жалоба Поделиться Опубликовано 30 Мая 2007 Модификация позволяет использовати маски доступа пользователей исключительно как дополнительные возможности. Маски которые присвоены группе будут иметь основоположный уровень доступа.Ужас какой. Это только в разве журнал "Наука и Жизнь". Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kolorom Опубликовано 30 Мая 2007 Жалоба Поделиться Опубликовано 30 Мая 2007 Маразм крепчал =) ПС: если мод уже есть то описалово можно в одну строчку. Я его неписал как оно функционирует должен знать автор а для чего написан тоже! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 30 Мая 2007 Жалоба Поделиться Опубликовано 30 Мая 2007 выносит моск Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 18 Июля 2007 Жалоба Поделиться Опубликовано 18 Июля 2007 kolorom Ну вот смотри сделаем мы мод. К описанию к нему что-то напишем. Цель - прочитав описание, однозначно понять чего получит админ, установив мод. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.