Merge pull request #279 from iranl/lock-and-unlock

Add Accesslevel "Lock and Unlock operation only"
This commit is contained in:
Jan-Ole Schümann
2024-01-29 21:38:02 +07:00
committed by GitHub
4 changed files with 19 additions and 1 deletions

View File

@@ -4,5 +4,6 @@ enum class AccessLevel
{
Full = 0,
LockOnly = 1,
ReadOnly = 2
ReadOnly = 2,
LockAndUnlock = 3
};

View File

@@ -486,6 +486,14 @@ LockActionResult NukiOpenerWrapper::onLockActionReceivedCallback(const char *val
nukiOpenerInst->_nextLockAction = action;
return LockActionResult::Success;
break;
case AccessLevel::LockAndUnlock:
if(action == NukiOpener::LockAction::ActivateRTO || action == NukiOpener::LockAction::ActivateCM || action == NukiOpener::LockAction::DeactivateRTO || action == NukiOpener::LockAction::DeactivateCM)
{
nukiOpenerInst->_nextLockAction = action;
return LockActionResult::Success;
}
return LockActionResult::AccessDenied;
break;
case AccessLevel::LockOnly:
if(action == NukiOpener::LockAction::DeactivateRTO || action == NukiOpener::LockAction::DeactivateCM)
{

View File

@@ -455,6 +455,14 @@ LockActionResult NukiWrapper::onLockActionReceivedCallback(const char *value)
nukiInst->_nextLockAction = action;
return LockActionResult::Success;
break;
case AccessLevel::LockAndUnlock:
if(action == NukiLock::LockAction::Lock || action == NukiLock::LockAction::Unlock || action == NukiLock::LockAction::LockNgo || action == NukiLock::LockAction::FullLock)
{
nukiInst->_nextLockAction = action;
return LockActionResult::Success;
}
return LockActionResult::AccessDenied;
break;
case AccessLevel::LockOnly:
if(action == NukiLock::LockAction::Lock)
{

View File

@@ -1308,6 +1308,7 @@ const std::vector<std::pair<String, String>> WebCfgServer::getAccessLevelOptions
std::vector<std::pair<String, String>> options;
options.push_back(std::make_pair(std::to_string((int)AccessLevel::Full).c_str(), "Full"));
options.push_back(std::make_pair(std::to_string((int)AccessLevel::LockAndUnlock).c_str(), "Lock and unlock operation only"));
options.push_back(std::make_pair(std::to_string((int)AccessLevel::LockOnly).c_str(), "Lock operation only"));
options.push_back(std::make_pair(std::to_string((int)AccessLevel::ReadOnly).c_str(), "Read only"));