internal bool IsModeratorApprover(ADO Ado, string CcnUsername, int RlsCode) { var adoWorkflowResponse = new WorkflowResponse_ADO(); if (Account_BSO_Read.IsModerator(Ado, CcnUsername)) { var approveRlsList = adoWorkflowResponse.GetApproverAccess(Ado, CcnUsername, true, RlsCode); return(approveRlsList.data.Count > 0); } return(false); }
/// <summary> /// Test if the user is a moderator /// </summary> /// <param name="ccnUsername"></param> /// <returns></returns> protected bool IsModerator(string ccnUsername) { return(Account_BSO_Read.IsModerator(Ado, ccnUsername)); }
/// <summary> /// Test if the current user is a moderator /// </summary> /// <returns></returns> protected bool IsModerator() { return(Account_BSO_Read.IsModerator(Ado, SamAccountName)); }
internal JSONRPC_Output WorkflowResponseCreate(WorkflowResponse_DTO DTO, ADO Ado, string SamAccountName) { JSONRPC_Output response = new JSONRPC_Output(); //We need to get the Request for notification purposes WorkflowRequest_ADO adoWrq = new WorkflowRequest_ADO(); List <WorkflowRequest_DTO> dtoWrqList = adoWrq.Read(Ado, DTO.RlsCode, true); if (dtoWrqList.Count > 1) { //Multiple requests found for this release Log.Instance.Debug("More than one request found for this release "); response.error = Label.Get("error.create"); return(response); } if (dtoWrqList.Count == 0) { //No request found for this release Log.Instance.Debug("No request found for this release "); response.error = Label.Get("error.create"); return(response); } //Validation of parameters and user have been successful. We may now proceed to read from the database var adoWorkflowRequest = new WorkflowRequest_ADO(); if (!adoWorkflowRequest.IsCurrent(Ado, DTO.RlsCode)) { //No workflow found Log.Instance.Debug("No Live workflow found for this Release Code"); response.error = Label.Get("error.create"); return(response); } var adoWorkflowResponse = new WorkflowResponse_ADO(); //If this is a Moderator, we need to check if the user is in the same group as the release and has approve rights if (Account_BSO_Read.IsModerator(Ado, SamAccountName)) { var approveRlsList = adoWorkflowResponse.GetApproverAccess(Ado, SamAccountName, true, DTO.RlsCode); if (approveRlsList.data.Count == 0) { Log.Instance.Debug("Insufficient access for a Moderator"); response.error = Label.Get("error.authentication"); return(response); } } //Check that there isn't already a WorkflowResponse for this Release if (adoWorkflowResponse.IsInUse(Ado, DTO)) { //Duplicate Workflow exists Log.Instance.Debug("Workflow Response exists already, can't create"); response.error = Label.Get("error.duplicate"); return(response); } var adoComment = new Comment_ADO(); int commentCode = adoComment.Create(Ado, DTO, SamAccountName); if (commentCode == 0) { //Can't create a comment so we can't proceed Log.Instance.Debug("Can't create comment - create WorkflowResponse refused"); response.error = Label.Get("error.create"); return(response); } DTO.CmmCode = commentCode; int createResponse = adoWorkflowResponse.Create(Ado, DTO, SamAccountName); if (createResponse == 0) { response.error = Label.Get("error.create"); return(response); } //If this is a Reject then we must reset the workflow to stop it being current if (DTO.RspCode.Equals(Resources.Constants.C_WORKFLOW_STATUS_REJECT)) { WorkflowRequest_DTO_Update dtoRequest = new WorkflowRequest_DTO_Update(DTO.RlsCode) { WrqCurrentFlag = false }; adoWorkflowRequest.Update(Ado, dtoRequest, SamAccountName); } response.data = JSONRPC.success; //Get Release Release_ADO releaseAdo = new Release_ADO(Ado); Release_DTO releaseDTO = Release_ADO.GetReleaseDTO(releaseAdo.Read(DTO.RlsCode, SamAccountName)); Security.ActiveDirectory_DTO responseUser = new Security.ActiveDirectory_DTO() { CcnUsername = SamAccountName }; Security.ActiveDirectory_ADO accAdo = new Security.ActiveDirectory_ADO(); Security.Account_DTO_Read accDto = new Security.Account_DTO_Read() { CcnUsername = responseUser.CcnUsername }; DTO.ResponseAccount = accAdo.GetUser(Ado, accDto); Email_BSO_NotifyWorkflow notify = new Email_BSO_NotifyWorkflow(); try { notify.EmailResponse(dtoWrqList[0], DTO, releaseDTO); } catch { } return(response); }