/// <summary> /// Adds a user into the data layer. /// </summary> /// <param name="userIdentifier">A unique identifier for the user.</param> public void AddUser(String userIdentifier) { // Throw an exception is the user identifier is blank if (userIdentifier.Trim() == "") { throw new ArgumentException("Parameter 'userIdentifier' cannot be blank.", "userIdentifier"); } // Throw an exception if the user identifier already exists in the data repository if (userDataRepository.ContainsKey(userIdentifier) == true) { throw new ArgumentException("User identifier '" + userIdentifier + "' already exists.", "userIdentifier"); } OraclePermissionGeneratorDataInterfaceLayer userDataInterfaceLayer = new OraclePermissionGeneratorDataInterfaceLayer(); // Setup default object type to permission maps // TODO: Eventually the ability to modify the object type to permission maps should be exposed through the web service API userDataInterfaceLayer.AddObjectTypeToPermissionMap("Table", "SELECT"); userDataInterfaceLayer.AddObjectTypeToPermissionMap("Table", "INSERT"); userDataInterfaceLayer.AddObjectTypeToPermissionMap("Table", "UPDATE"); userDataInterfaceLayer.AddObjectTypeToPermissionMap("Table", "DELETE"); userDataInterfaceLayer.AddObjectTypeToPermissionMap("View", "SELECT"); userDataInterfaceLayer.AddObjectTypeToPermissionMap("Stored Procedure", "EXECUTE"); userDataRepository.Add(userIdentifier, userDataInterfaceLayer); }
/// <summary> /// Creates PermissionScriptGenerator object from the inputted OraclePermissionGeneratorDataInterfaceLayer. /// </summary> /// <param name="dataInterfaceLayer">The OraclePermissionGeneratorDataInterfaceLayer to use to build the PermissionScriptGenerator</param> /// <returns>A PermissionScriptGenerator object.</returns> protected PermissionScriptGenerator BuildPermissionScriptGenerator(OraclePermissionGeneratorDataInterfaceLayer dataInterfaceLayer) { // Constructor for PermissionScriptGenerator requires GenerateableOracleObjectPermissionSetCollection, but this is not directly available from the inputted data interface layer, hence need to create it GenerateableOracleObjectPermissionSetCollection collection = new GenerateableOracleObjectPermissionSetCollection(); foreach (IGenerateableOracleObjectPermissionSet currentPermissionSet in dataInterfaceLayer.GetObjects()) { collection.Add(currentPermissionSet); } PermissionScriptGenerator permissionScriptGenerator = new PermissionScriptGenerator(dataInterfaceLayer.GetMasterRoleToUserMapCollection(), collection); return permissionScriptGenerator; }