private List <string> GetCodeLinesFromObjectPermissionObject(IPermissionPolicyObjectPermissionsObject objectPermissionObject) { List <string> codeLines = new List <string>(); OperationBuilder allowOperationBuilder = new OperationBuilder(); OperationBuilder dennyOperationBuilder = new OperationBuilder(); nameSpacesCodeLines.Add(objectPermissionObject.TypePermissionObject.TargetType.Namespace); AddOperation(allowOperationBuilder, dennyOperationBuilder, objectPermissionObject.ReadState, Operations.Read); AddOperation(allowOperationBuilder, dennyOperationBuilder, objectPermissionObject.WriteState, Operations.Write); AddOperation(allowOperationBuilder, dennyOperationBuilder, objectPermissionObject.DeleteState, Operations.Delete); AddOperation(allowOperationBuilder, dennyOperationBuilder, objectPermissionObject.NavigateState, Operations.Navigate); string allowOperations = allowOperationBuilder.GetOperations(); if (allowOperations != string.Empty) { codeLines.Add(GetCodeLine(objectPermissionObject, allowOperations, true)); } string dennyOperations = dennyOperationBuilder.GetOperations(); if (dennyOperations != string.Empty) { codeLines.Add(GetCodeLine(objectPermissionObject, dennyOperations, false)); } return(codeLines); }
private string GetCodeLine(IPermissionPolicyObjectPermissionsObject objectPermissionObject, string operation, bool isGranted) { string securityPermissionState = GetSecurityPermissionState(isGranted); string typeName = objectPermissionObject.TypePermissionObject.TargetType.Name; string criteria = objectPermissionObject.Criteria; return($"role.AddObjectPermission<{typeName}>({operation}, " + $"\"{criteria}\", SecurityPermissionState.{securityPermissionState});"); }