Added validateAccess method
This commit is contained in:
parent
e5f7012998
commit
10feb892b4
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
|
||||
#include "DMRAccessControl.h"
|
||||
#include "Log.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
@ -109,3 +110,23 @@ bool DMRAccessControl::validateSrcId(unsigned int id)
|
|||
return std::find(m_prefixes.begin(), m_prefixes.end(), prefix) != m_prefixes.end();
|
||||
}
|
||||
}
|
||||
|
||||
bool DMRAccessControl::validateAccess (unsigned int src_id, unsigned int dst_id, unsigned int slot)
|
||||
{
|
||||
if (!DMRAccessControl::validateSrcId(src_id)) {
|
||||
LogMessage("DMR Slot %u, invalid access attempt from %u (blacklisted)", slot, src_id);
|
||||
return false;
|
||||
|
||||
}
|
||||
else if (DMRAccessControl::DstIdBlacklist(dst_id, slot)) {
|
||||
LogMessage("DMR Slot %u, invalid access attempt to TG%u (TG blacklisted)", slot, dst_id);
|
||||
return false;
|
||||
}
|
||||
else if (!DMRAccessControl::DstIdWhitelist(dst_id, slot, true)) {
|
||||
LogMessage("DMR Slot %u, invalid access attempt to TG%u (TG not in whitelist)", slot, dst_id);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@ public:
|
|||
|
||||
static bool validateSrcId(unsigned int id);
|
||||
|
||||
static bool validateAccess (unsigned int src_id, unsigned int dst_id, unsigned int slot);
|
||||
|
||||
static void init(const std::vector<unsigned int>& DstIdBlacklistSlot1, const std::vector<unsigned int>& DstIdWhitelistSlot1, const std::vector<unsigned int>& DstIdBlacklistSlot2, const std::vector<unsigned int>& DstIdWhitelistSlot2, const std::vector<unsigned int>& SrcIdBlacklist, bool selfOnly, const std::vector<unsigned int>& prefixes,unsigned int id);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue