/// <summary> /// This method checks if the given user group is allowed access to the /// supplied function group. /// </summary> /// <param name="Capability">The function group who's access is in question.</param> /// <param name="Group">The specific user group that is having its access checked.</param> /// <returns>A bool indicating whether the user group has access.</returns> // Revision History // MM/DD/YY Who Version Issue# Description // -------- --- ------- ------ --------------------------------------------- // 05/27/08 jrf 1.50.28 Created // 01/15/09 jrf 2.10.01 125939 Dividing the meter reset operations functional capability // into five new function groups. // 01/16/09 jrf 2.10.01 125939 Added additional new function group, clear meter data. // 08/05/11 AF 2.51.33 Added clear fw dl event log // 06/17/15 jrf 4.20.14 RQ591138 Added create replica file to UAP. public bool CheckGroupAccess(FunctionalCapability Capability, UserGroup Group) { bool blnAccessGranted = false; string strXMLTag = ""; //Get the user groups that can access each capability switch (Capability) { case FunctionalCapability.ManageSystemSettings: { strXMLTag = XML_MANAGE_SYS_SETTINGS_TAG; break; } case FunctionalCapability.CreateReplicaFile: { strXMLTag = XML_CREATE_REPLICA_FILE_TAG; break; } case FunctionalCapability.ManageConfigFiles: { strXMLTag = XML_MANAGE_CONFIG_FILES_TAG; break; } case FunctionalCapability.ManageDataFiles: { strXMLTag = XML_MANAGE_DATA_FILES_TAG; break; } case FunctionalCapability.CommModuleOperations: { strXMLTag = XML_RFLAN_OPERATIONS_TAG; break; } case FunctionalCapability.HANOperations: { strXMLTag = XML_HAN_OPERATIONS_TAG; break; } case FunctionalCapability.MeterSwitchOperations: { strXMLTag = XML_METER_SWITCH_OPERATIONS_TAG; break; } case FunctionalCapability.MeterInitialization: { strXMLTag = XML_METER_INIT_OPERATIONS_TAG; break; } case FunctionalCapability.Reconfiguration: { strXMLTag = XML_METER_RECONFIG_TAG; break; } case FunctionalCapability.FirmwareDownload: { strXMLTag = XML_FW_DOWNLOAD_TAG; break; } case FunctionalCapability.ResetDemandRegisters: { strXMLTag = XML_RESET_DEMAND_TAG; break; } case FunctionalCapability.ResetBillingRegisters: { strXMLTag = XML_RESET_BILLING_TAG; break; } case FunctionalCapability.ResetTampers: { strXMLTag = XML_RESET_TAMPERS_TAG; break; } case FunctionalCapability.ResetActivityStatus: { strXMLTag = XML_RESET_ACTIVITY_STATUS; break; } case FunctionalCapability.AdjustClock: { strXMLTag = XML_ADJUST_CLOCK; break; } case FunctionalCapability.ClearMeterData: { strXMLTag = XML_CLEAR_METER_DATA; break; } case FunctionalCapability.EnterExitTestMode: { strXMLTag = XML_ENTER_EXIST_TEST_MODE; break; } case FunctionalCapability.ClearFWDLEventLog: { strXMLTag = XML_CLEAR_FWDL_EVENT_LOG; break; } default: { throw new ArgumentException("Unexpected Capability: " + Capability.ToString()); } } m_EncryptedXMLSettings.SelectNodeFromAnchor(strXMLTag, true); if ((Group & (UserGroup)m_EncryptedXMLSettings.CurrentNodeInt) != UserGroup.NoUsers) { blnAccessGranted = true; } return(blnAccessGranted); }
/// <summary> /// This method assigns a user group(s) access to a particular function group. /// </summary> /// <param name="Capability">The capability to set.</param> /// <param name="Group">The user group(s) to assign access.</param> // Revision History // MM/DD/YY Who Version Issue# Description // -------- --- ------- ------ --------------------------------------------- // 05/27/08 jrf 1.50.28 Created // 01/15/09 jrf 2.10.01 125939 Dividing the meter reset operations functional capability // into five new function groups. // 01/16/09 jrf 2.10.01 125939 Added additional new function group, clear meter data. // 08/05/11 AF 2.51.33 Added clear fw dl event log // 06/17/15 jrf 4.20.14 RQ591138 Added create replica file to UAP. public void SetUserAccess(FunctionalCapability Capability, UserGroup Group) { switch (Capability) { case FunctionalCapability.ManageSystemSettings: { SetUserGroups(XML_MANAGE_SYS_SETTINGS_TAG, Group); break; } case FunctionalCapability.CreateReplicaFile: { SetUserGroups(XML_CREATE_REPLICA_FILE_TAG, Group); break; } case FunctionalCapability.ManageConfigFiles: { SetUserGroups(XML_MANAGE_CONFIG_FILES_TAG, Group); break; } case FunctionalCapability.ManageDataFiles: { SetUserGroups(XML_MANAGE_DATA_FILES_TAG, Group); break; } case FunctionalCapability.CommModuleOperations: { SetUserGroups(XML_RFLAN_OPERATIONS_TAG, Group); break; } case FunctionalCapability.HANOperations: { SetUserGroups(XML_HAN_OPERATIONS_TAG, Group); break; } case FunctionalCapability.MeterSwitchOperations: { SetUserGroups(XML_METER_SWITCH_OPERATIONS_TAG, Group); break; } case FunctionalCapability.MeterInitialization: { SetUserGroups(XML_METER_INIT_OPERATIONS_TAG, Group); break; } case FunctionalCapability.Reconfiguration: { SetUserGroups(XML_METER_RECONFIG_TAG, Group); break; } case FunctionalCapability.FirmwareDownload: { SetUserGroups(XML_FW_DOWNLOAD_TAG, Group); break; } case FunctionalCapability.ResetDemandRegisters: { SetUserGroups(XML_RESET_DEMAND_TAG, Group); break; } case FunctionalCapability.ResetBillingRegisters: { SetUserGroups(XML_RESET_BILLING_TAG, Group); break; } case FunctionalCapability.ResetTampers: { SetUserGroups(XML_RESET_TAMPERS_TAG, Group); break; } case FunctionalCapability.ResetActivityStatus: { SetUserGroups(XML_RESET_ACTIVITY_STATUS, Group); break; } case FunctionalCapability.AdjustClock: { SetUserGroups(XML_ADJUST_CLOCK, Group); break; } case FunctionalCapability.ClearMeterData: { SetUserGroups(XML_CLEAR_METER_DATA, Group); break; } case FunctionalCapability.EnterExitTestMode: { SetUserGroups(XML_ENTER_EXIST_TEST_MODE, Group); break; } case FunctionalCapability.ClearFWDLEventLog: { SetUserGroups(XML_CLEAR_FWDL_EVENT_LOG, Group); break; } default: { throw new ArgumentException("Unexpected Capability: " + Capability.ToString()); } } }
/// <summary> /// This method checks if the currently logged on user is in an appropriate /// user group to access the supplied function group. /// </summary> /// <param name="Capability">The function group who's access is in question.</param> /// <returns>A bool indicating whether access was granted.</returns> // Revision History // MM/DD/YY Who Version Issue# Description // -------- --- ------- ------ --------------------------------------------- // 05/27/08 jrf 1.50.28 Created // 01/15/09 jrf 2.10.01 125939 Dividing the meter reset operations functional capability // into five new function groups. // 01/16/09 jrf 2.10.01 125939 Added additional new function group, clear meter data. // 08/05/11 AF 2.51.33 Added new functional capability, clear fw dl event log. // 06/17/15 jrf 4.20.14 RQ591138 Added create replica file to UAP. public bool CheckUserAccess(FunctionalCapability Capability) { bool blnAccessGranted = true; List <string> lststrRoles; //Get the user groups that can access each capability switch (Capability) { case FunctionalCapability.ManageSystemSettings: { lststrRoles = GetUserGroups(XML_MANAGE_SYS_SETTINGS_TAG); break; } case FunctionalCapability.CreateReplicaFile: { lststrRoles = GetUserGroups(XML_CREATE_REPLICA_FILE_TAG); break; } case FunctionalCapability.ManageConfigFiles: { lststrRoles = GetUserGroups(XML_MANAGE_CONFIG_FILES_TAG); break; } case FunctionalCapability.ManageDataFiles: { lststrRoles = GetUserGroups(XML_MANAGE_DATA_FILES_TAG); break; } case FunctionalCapability.CommModuleOperations: { lststrRoles = GetUserGroups(XML_RFLAN_OPERATIONS_TAG); break; } case FunctionalCapability.HANOperations: { lststrRoles = GetUserGroups(XML_HAN_OPERATIONS_TAG); break; } case FunctionalCapability.MeterSwitchOperations: { lststrRoles = GetUserGroups(XML_METER_SWITCH_OPERATIONS_TAG); break; } case FunctionalCapability.MeterInitialization: { lststrRoles = GetUserGroups(XML_METER_INIT_OPERATIONS_TAG); break; } case FunctionalCapability.Reconfiguration: { lststrRoles = GetUserGroups(XML_METER_RECONFIG_TAG); break; } case FunctionalCapability.FirmwareDownload: { lststrRoles = GetUserGroups(XML_FW_DOWNLOAD_TAG); break; } case FunctionalCapability.ResetDemandRegisters: { lststrRoles = GetUserGroups(XML_RESET_DEMAND_TAG); break; } case FunctionalCapability.ResetBillingRegisters: { lststrRoles = GetUserGroups(XML_RESET_BILLING_TAG); break; } case FunctionalCapability.ResetTampers: { lststrRoles = GetUserGroups(XML_RESET_TAMPERS_TAG); break; } case FunctionalCapability.ResetActivityStatus: { lststrRoles = GetUserGroups(XML_RESET_ACTIVITY_STATUS); break; } case FunctionalCapability.AdjustClock: { lststrRoles = GetUserGroups(XML_ADJUST_CLOCK); break; } case FunctionalCapability.ClearMeterData: { lststrRoles = GetUserGroups(XML_CLEAR_METER_DATA); break; } case FunctionalCapability.EnterExitTestMode: { lststrRoles = GetUserGroups(XML_ENTER_EXIST_TEST_MODE); break; } case FunctionalCapability.ClearFWDLEventLog: { lststrRoles = GetUserGroups(XML_CLEAR_FWDL_EVENT_LOG); break; } default: { throw new ArgumentException("Unexpected Capability: " + Capability.ToString()); } } //Verify the user is a member of one of the user groups blnAccessGranted = VerifyUser(UserAccessPolicy, lststrRoles); return(blnAccessGranted); }