Granular Access Level Control

This commit is contained in:
iranl
2024-03-11 22:30:39 +01:00
parent 1d9787374c
commit 742186f3d5
12 changed files with 417 additions and 186 deletions

View File

@@ -153,11 +153,84 @@ bool initPreferences()
if(configVer < (atof(NUKI_HUB_VERSION) * 100))
{
//Example
//if (configVer < 833)
//{
//MIGRATE SETTINGS
//}
if (configVer < 834)
{
if(preferences->getInt(preference_keypad_control_enabled))
{
preferences->putBool(preference_keypad_info_enabled, true);
}
else
{
preferences->putBool(preference_keypad_info_enabled, false);
}
switch(preferences->getInt(preference_access_level))
{
case 0:
preferences->putBool(preference_keypad_control_enabled, true);
preferences->putBool(preference_admin_config_enabled, true);
preferences->putBool(preference_acl_lock, true);
preferences->putBool(preference_acl_unlock, true);
preferences->putBool(preference_acl_unlatch, true);
preferences->putBool(preference_acl_lockngo, true);
preferences->putBool(preference_acl_lockngo_unlatch, true);
preferences->putBool(preference_acl_fulllock, true);
preferences->putBool(preference_acl_lck_fob1, true);
preferences->putBool(preference_acl_lck_fob2, true);
preferences->putBool(preference_acl_lck_fob3, true);
preferences->putBool(preference_acl_act_rto, true);
preferences->putBool(preference_acl_deact_rto, true);
preferences->putBool(preference_acl_act_esa, true);
preferences->putBool(preference_acl_act_cm, true);
preferences->putBool(preference_acl_deact_cm, true);
preferences->putBool(preference_acl_opn_fob1, true);
preferences->putBool(preference_acl_opn_fob2, true);
preferences->putBool(preference_acl_opn_fob3, true);
break;
case 1:
preferences->putBool(preference_keypad_control_enabled, false);
preferences->putBool(preference_admin_config_enabled, false);
preferences->putBool(preference_acl_lock, true);
preferences->putBool(preference_acl_unlock, false);
preferences->putBool(preference_acl_unlatch, false);
preferences->putBool(preference_acl_lockngo, false);
preferences->putBool(preference_acl_lockngo_unlatch, false);
preferences->putBool(preference_acl_fulllock, true);
preferences->putBool(preference_acl_lck_fob1, false);
preferences->putBool(preference_acl_lck_fob2, false);
preferences->putBool(preference_acl_lck_fob3, false);
preferences->putBool(preference_acl_act_rto, false);
preferences->putBool(preference_acl_deact_rto, true);
preferences->putBool(preference_acl_act_esa, false);
preferences->putBool(preference_acl_act_cm, false);
preferences->putBool(preference_acl_deact_cm, true);
preferences->putBool(preference_acl_opn_fob1, false);
preferences->putBool(preference_acl_opn_fob2, false);
preferences->putBool(preference_acl_opn_fob3, false);
break;
case 3:
preferences->putBool(preference_keypad_control_enabled, false);
preferences->putBool(preference_admin_config_enabled, false);
preferences->putBool(preference_acl_lock, true);
preferences->putBool(preference_acl_unlock, true);
preferences->putBool(preference_acl_unlatch, false);
preferences->putBool(preference_acl_lockngo, true);
preferences->putBool(preference_acl_lockngo_unlatch, false);
preferences->putBool(preference_acl_fulllock, true);
preferences->putBool(preference_acl_lck_fob1, false);
preferences->putBool(preference_acl_lck_fob2, false);
preferences->putBool(preference_acl_lck_fob3, false);
preferences->putBool(preference_acl_act_rto, true);
preferences->putBool(preference_acl_deact_rto, true);
preferences->putBool(preference_acl_act_esa, false);
preferences->putBool(preference_acl_act_cm, true);
preferences->putBool(preference_acl_deact_cm, true);
preferences->putBool(preference_acl_opn_fob1, false);
preferences->putBool(preference_acl_opn_fob2, false);
preferences->putBool(preference_acl_opn_fob3, false);
break;
}
}
preferences->putInt(preference_config_version, atof(NUKI_HUB_VERSION) * 100);
}