mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[9518] Implement account associated execute for RA commands
* Now at login by RA-connection RA-connection use account id/access level
for commands execute. So at login with moderator access by RA-connection you
can execute only moderator level commands. For administrator level accounts
allowed execute only console level commands if new config option RA.Stricted = 0.
For security reasons by default RA.Stricted = 1.
* RA-connection executed commands now logged for associalted account id
* Some own account related commands allowed execute in RA-connection
NOTE: config version updated because RA.Stricted = 1 not compatible with old
way work and this can break tools thta use RA-access if it not disabled.
Yuo will need update mangosd.conf.
This commit is contained in:
parent
39559fc73a
commit
7fdbe497e9
13 changed files with 114 additions and 58 deletions
|
|
@ -961,7 +961,7 @@ bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
|
|||
return false;
|
||||
|
||||
/// account can't set security to same or grater level, need more power GM or console
|
||||
AccountTypes plSecurity = m_session ? m_session->GetSecurity() : SEC_CONSOLE;
|
||||
AccountTypes plSecurity = GetAccessLevel();
|
||||
if (AccountTypes(gm) >= plSecurity )
|
||||
{
|
||||
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW);
|
||||
|
|
@ -5991,7 +5991,7 @@ bool ChatHandler::HandleInstanceListBindsCommand(const char* /*args*/)
|
|||
if (const MapEntry* entry = sMapStore.LookupEntry(itr->first))
|
||||
{
|
||||
PSendSysMessage("map: %d (%s) inst: %d perm: %s diff: %d canReset: %s TTR: %s",
|
||||
itr->first, entry->name[m_session->GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
itr->first, entry->name[GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str());
|
||||
}
|
||||
else
|
||||
|
|
@ -6014,7 +6014,7 @@ bool ChatHandler::HandleInstanceListBindsCommand(const char* /*args*/)
|
|||
if (const MapEntry* entry = sMapStore.LookupEntry(itr->first))
|
||||
{
|
||||
PSendSysMessage("map: %d (%s) inst: %d perm: %s diff: %d canReset: %s TTR: %s",
|
||||
itr->first, entry->name[m_session->GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
itr->first, entry->name[GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str());
|
||||
}
|
||||
else
|
||||
|
|
@ -6067,7 +6067,7 @@ bool ChatHandler::HandleInstanceUnbindCommand(const char* args)
|
|||
if (const MapEntry* entry = sMapStore.LookupEntry(itr->first))
|
||||
{
|
||||
PSendSysMessage("unbinding map: %d (%s) inst: %d perm: %s diff: %d canReset: %s TTR: %s",
|
||||
itr->first, entry->name[m_session->GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
itr->first, entry->name[GetSessionDbcLocale()], save->GetInstanceId(), itr->second.perm ? "yes" : "no",
|
||||
save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str());
|
||||
}
|
||||
else
|
||||
|
|
@ -6197,7 +6197,7 @@ bool ChatHandler::HandleAccountSetAddonCommand(const char* args)
|
|||
|
||||
// Let set addon state only for lesser (strong) security level
|
||||
// or to self account
|
||||
if (m_session && m_session->GetAccountId () != account_id &&
|
||||
if (GetAccountId() && GetAccountId () != account_id &&
|
||||
HasLowerSecurityAccount (NULL,account_id,true))
|
||||
return false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue