public void ToStringSerialisesAllValues() { DiagnoseSecurityResponse response = new DiagnoseSecurityResponse(); response.ErrorMessages.Add(new ErrorMessage("Error 1")); response.ErrorMessages.Add(new ErrorMessage("Error 2")); response.RequestIdentifier = "request"; response.Result = ResponseResult.Success; response.Timestamp = DateTime.Now; SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics(); diagnostics.IsAllowed = true; diagnostics.Permission = "testing"; diagnostics.Project = "test project"; diagnostics.User = "******"; response.Diagnostics.Add(diagnostics); string actual = response.ToString(); string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture, "<diagnoseSecurityResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" result=\"{1}\">" + "<error>Error 1</error>" + "<error>Error 2</error>" + "<diagnosis permission=\"testing\" project=\"test project\" " + "user=\"test user\" allowed=\"true\" />" + "</diagnoseSecurityResponse>", response.RequestIdentifier, response.Result, response.Timestamp); XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected)); }
public void ToStringSerialisesAllValues() { DiagnoseSecurityResponse response = new DiagnoseSecurityResponse(); response.ErrorMessages.Add(new ErrorMessage("Error 1")); response.ErrorMessages.Add(new ErrorMessage("Error 2")); response.RequestIdentifier = "request"; response.Result = ResponseResult.Success; response.Timestamp = DateTime.Now; SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics(); diagnostics.IsAllowed = true; diagnostics.Permission = "testing"; diagnostics.Project = "test project"; diagnostics.User = "******"; response.Diagnostics.Add(diagnostics); string actual = response.ToString(); string expected = string.Format("<diagnoseSecurityResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" result=\"{1}\">" + "<error>Error 1</error>" + "<error>Error 2</error>" + "<diagnosis permission=\"testing\" project=\"test project\" " + "user=\"test user\" allowed=\"true\" />" + "</diagnoseSecurityResponse>", response.RequestIdentifier, response.Result, response.Timestamp); Assert.AreEqual(expected, actual); }
/// <summary> /// Checks the security permissions for a user against one or more projects. /// </summary> /// <param name="request"></param> /// <returns>A set of diagnostics information.</returns> public DiagnoseSecurityResponse DiagnoseSecurityPermissions(DiagnoseSecurityRequest request) { List<SecurityCheckDiagnostics> diagnoses = new List<SecurityCheckDiagnostics>(); DiagnoseSecurityResponse response = new DiagnoseSecurityResponse(RunServerRequest(request, SecurityPermission.ViewSecurity, SecurityEvent.DiagnoseSecurityPermissions, delegate { Array permissions = Enum.GetValues(typeof(SecurityPermission)); foreach (string projectName in request.Projects) { if (string.IsNullOrEmpty(projectName)) { Log.Info(string.Format(CultureInfo.CurrentCulture, "DiagnoseServerPermission for user {0}", request.UserName)); } else { Log.Info(string.Format(CultureInfo.CurrentCulture, "DiagnoseProjectPermission for user {0} project {1}", request.UserName, projectName)); } foreach (SecurityPermission permission in permissions) { SecurityCheckDiagnostics diagnostics = new SecurityCheckDiagnostics(); diagnostics.Permission = permission.ToString(); diagnostics.Project = projectName; diagnostics.User = request.UserName; diagnostics.IsAllowed = DiagnosePermission(request.UserName, projectName, permission); diagnoses.Add(diagnostics); } } })); response.Diagnostics = diagnoses; return response; }