bool psCommandManager::Validate(int securityLevel, const char* command, csString &error)
{
    if(!command)
    {
        error = "No command found";
        return false;
    }

    // Force every security level to legal range
    if(securityLevel > 30) securityLevel = 30;

    CommandList* list = commandLists.Get(command, NULL);
    if(list)
    {
        size_t find = list->groupMembers.Find(securityLevel);
        if(find == csArrayItemNotFound)
        {
            CommandGroup* grp = commandGroups.Get(securityLevel, NULL);
            csString groupName = "Unknown";
            if(grp)
                groupName = grp->name;

            error.Format("You do not have access to '%s' in your group '%s'", command, groupName.GetData());
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        error.Format("%s not found in any group!", command);
        return false;
    }
}
void psOptions::BuildKey(csString & result, const char * className, const char * optionName) const
{
    result.Format("%s.%s", className, optionName);
}