Структура БД TC все чаще и чаще меняется и не все преуспевают за этими изменениями. Мой мануал предназначен для всех тех, кто использует новые базы и не имеет никакого понятия, как же выдать ГМа.
Цитата
Для администрации и всех недовольствующих: http://wowjp.net/forum/120-253883-1 - это не мануал, это маразм какой-то. Поставить просто по дефаулту группу пользователей 1 (Player) и думать, что теперь права доступа будут работать - большое заблуждение!
Если у вас RBAC.DefaultGroups = "1", то все впорядке, оставляете. Если же нет, то меняем. Объясняю, почему "1" и можно ли вписать какие-либо другие числа: Согласно стандартным групам (DefaultGroups):
Доступно только для пользователей Тоесть при RBAC.DefaultGroups = "1" всем игрокам, которые создали аккаунт будет присваится группа Player. Если у вас сервер All GM или прочий бред, вы можете вписать туда иные цифры из списка предложенного выше, тогда все аккаунты будут создаватся с правами Модератора, ГМа или же Администратора, в зависимости от поставленной цифры
С этим, думаю, разобрались, перейдем теперь дальше, а именно к непосредственной выдачи ГМа, т.к. предыдущии действия были только началом. Выдать ГМа можно двумя способами: 1) С помощью SQL-запросов (либо прописывания вручную данных в Navicat/SQLYog, что само по себе немного глупо); 2) С помощью комманд 1 способ - с помощью SQL-запросов
В RBAC есть разнообразные таблицы, в которых можно легко запутатся. Нам нужно будет только 3: rbac_account_groups; rbac_account_permissions; rbac_account_roles. В них мы будем посылать наши запросы. Рассмотрим на примере выдачи прав 4 - Администратора. Запрос в rbac_account_groups: (задает права на использование комманд определенного доступа для аккаунта.)
Детальнее о каждой колонке: 1) accountId - Айди нашего аккаунта; 2) groupId - айди группы аккаунта; 3) realmId - айди реалма. В даном случае тут стоит "-1", это назначение администратора для всех реалмов. Если у вас есть несколько реалмов и вы хотите назначать администрацию для других реалмов, то вместо "-1" вписываем айди нашего реалма из realmlist.
Цитата
Если вы заметили, то значения вводятся 4 раза с изменением колонки groupId. Почему так? Отвечаю: Мы даем аккаунту право на использование комманд как 1-го, так 2, 3 и 4 уровня доступа. Если же вы хотите дать права использование комманд только 4 - Администратора, то вместо первого SQL-запроса пишем этот:
Код
INSERT INTO `rbac_account_groups` (`accountId`, `groupId`, `realmId`) VALUES ('2', '4', '-1');
Следующий запрос будет в rbac_account_roles: (пропись роли аккаунта. На сколько я понял, это просто определение группы пользователя.)
О колонках: 1) accountId - Айди нашего аккаунта; 2) groupId - айди группы аккаунта; 3) granted - не уверен, но здесь, скорее всего, указывается то, разрешено ли использование роли этому аккаунту или нет. По дефаулту стоит 1. 4) realmId - айди реалма. В даном случае тут стоит "-1", это назначение администратора для всех реалмов. Если у вас есть несколько реалмов и вы хотите назначать администрацию для других реалмов, то вместо "-1" вписываем айди нашего реалма из realmlist. Следующий запрос в rbac_account_permissions: (служит для присваивания неких преимуществ для аккаунта)
О колонках: 1) accountId - Айди нашего аккаунта; 2) permissionId - айди преимущества. Их есть довольно много и можно посмотреть тут: http://collab.kpsn.org/display....sions) Согласно таблице, 10 = RBAC_PERM_ADMINISTRATOR_COMMANDS, что позволяет использовать комманды Администратора (3 уровень доступа) 3) granted - не уверен, но здесь, скорее всего, указывается то, разрешено ли использование роли этому аккаунту или нет. По дефаулту стоит 1. 4) realmId - айди реалма. В даном случае тут стоит "-1", это назначение администратора для всех реалмов. Если у вас есть несколько реалмов и вы хотите назначать администрацию для других реалмов, то вместо "-1" вписываем айди нашего реалма из realmlist.
2 способ - с помощью комманд
Всего в RBAC существует довольно многое к-во комманд. Ознакомится со всеми можно тут (!!!ОСТОРОЖНО, АНГЛИЙСКИЙ!!!) Я не буду объяснять все комманды, там есть описание, хоть и на английском. Не знаете английский? Как вы дальше будете жить-то? О_О, ну, да ладно, не отчаивайтесь, я помогу: Секретная разработка от google (использовать людям с IQ выше 20 или вообще тем, кто знает, что такое IQ) Нет, это не ICQ
Из всех этих комманд мы будем использовать только 3, а именно: .rbac account group add; .rbac account role grant и .rbac account permission grant Детальнее: .rbac account group add - задает права на использование комманд определенного доступа для аккаунта. Вспоминаем, что у нас по дефаулту стоит группа 1 - Player и позволяет использовать комманды только 1-го уровня доступа. Для того чтобы дать право использования комманд с уровнем доступа выше "1", к примеру комманды 4 - Administrator, прописываем в игре эту комманду согласно синтаксису - rbac account group add [$account] #id [#realmId]:
Код
.rbac account group add TEST 1 -1 .rbac account group add TEST 2 -1 .rbac account group add TEST 3 -1 .rbac account group add TEST 4 -1
Для особо непонимающих объясняю: 1) TEST или же [$account] - это название нашего аккаунта; 2) цифры "1, 2, 3, 4" или же #id - это номера групп пользователей. 3) "-1" или же [#realmId] - это назначение администратора для всех реалмов. Если у вас есть несколько реалмов и вы хотите назначать администрацию для других реалмов, то вместо "-1" вписываем айди нашего реалма из realmlist.
Цитата
Если вы заметили, то комманда вводится 4 раза, с изменением только #id. Почему так? Отвечаю: Мы даем аккаунту право на использование комманд как 1-го, так 2, 3 и 4 уровня доступа. Если же вы хотите дать права использование комманд только 4 - Администратора, то прописываем только:
Код
.rbac account group add TEST 4 -1
.rbac account role grant - пропись роли аккаунта. На сколько я понял, это просто определение группы пользователя. Прописываем согласно синтаксису (.rbac account role grant [$account] #id [#realmId]):
Код
.rbac account role grant TEST 4 -1
!!!Прописывается только ОДИН РАЗ!!! Структура синтаксиса такая же, как и у group, поэтому объяснять не буду.
.rbac account permission grant - служит для присваивания неких преимуществ для аккаунта. Прописываем согласно синтаксису (.rbac account permission grant [$account] #id [#realmId]):
Код
.rbac account permission grant TEST 10 -1
Здесь, казалось-бы, структура синтаксиса та же, но есть одно различие, а именно: 10 или же #id - это айди преимущества. Их есть довольно много и можно посмотреть тут: http://collab.kpsn.org/display....sions) Согласно таблице, 10 = RBAC_PERM_ADMINISTRATOR_COMMANDS, что позволяет использовать комманды Администратора (3 уровень доступа)
Дополнительно о некоторых коммандах:
Цитата
.rbac account group remove - отбирает присовенную группу у пользователя Вводим согласно синтаксису: .rbac account group remove [$account] #id
.rbac account permission deny - отбирает преимущества у определенного аккаунта на определенном реалме Вводим согласно синтаксису: .rbac account permission deny [$account] #id [#realmId]
.rbac account permission revoke - отбирает преимущества у определенного аккаунта Вводим согласно синтаксису: .rbac account permission revoke [$account] #id
.rbac account role deny - отбирает роль у определенного аккаунта на определенном реалме Вводим согласно синтаксису: .rbac account role deny [$account] #id [#realmId]
.rbac account role revoke - отбирает роль у определенного аккаунта Вводим согласно синтаксису: .rbac account role revoke [$account] #id