diff options
author | Philipp Sehmisch <mana@crushnet.org> | 2010-01-17 02:25:39 +0100 |
---|---|---|
committer | Philipp Sehmisch <mana@crushnet.org> | 2010-01-17 02:27:35 +0100 |
commit | d7b6565c7f25f02b3e1c0b9d8f50590bcc78bea9 (patch) | |
tree | bed7b09fc5df01d76c69f5b22a6f904f10599085 /src/common/permissionmanager.cpp | |
parent | c9c199007fb6b77f8cd13ffdb560cd18ff3c5af4 (diff) | |
download | manaserv-d7b6565c7f25f02b3e1c0b9d8f50590bcc78bea9.tar.gz manaserv-d7b6565c7f25f02b3e1c0b9d8f50590bcc78bea9.tar.bz2 manaserv-d7b6565c7f25f02b3e1c0b9d8f50590bcc78bea9.tar.xz manaserv-d7b6565c7f25f02b3e1c0b9d8f50590bcc78bea9.zip |
Added commands for setting permissions by alias
Diffstat (limited to 'src/common/permissionmanager.cpp')
-rw-r--r-- | src/common/permissionmanager.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/common/permissionmanager.cpp b/src/common/permissionmanager.cpp index 1e97e02e..e363ebcd 100644 --- a/src/common/permissionmanager.cpp +++ b/src/common/permissionmanager.cpp @@ -27,6 +27,7 @@ static std::map<std::string, unsigned char> permissions; +static std::map<std::string, unsigned char> aliases; static std::string permissionFile; void addPermission(std::string permission, char mask) @@ -114,7 +115,8 @@ void PermissionManager::reload() // To be implemented } else if (xmlStrEqual(perNode->name, BAD_CAST "alias")){ const char* alias = (const char*)perNode->xmlChildrenNode->content; - // To be implemented + if (alias && strlen(alias) > 0) + aliases[alias] = classmask; } } } @@ -145,3 +147,15 @@ PermissionManager::Result PermissionManager::checkPermission(const Character* ch return PMR_DENIED; } } + +unsigned char PermissionManager::getMaskFromAlias(const std::string &alias) +{ + std::map<std::string, unsigned char>::iterator i = aliases.find(alias); + + if (i == aliases.end()) + { + return 0x00; + } else { + return i->second; + } +} |