diff options
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; + } +} |