summaryrefslogtreecommitdiff
path: root/src/common/permissionmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/permissionmanager.cpp')
-rw-r--r--src/common/permissionmanager.cpp16
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;
+ }
+}