private ReviewersDto GetUserAndRolesForStateReviewers(PortalSettings portalSettings, WorkflowState state) { var reviewers = new ReviewersDto { Roles = new List <RoleInfo>(), Users = new List <UserInfo>() }; if (state.SendNotification) { var permissions = _workflowStatePermissionsRepository.GetWorkflowStatePermissionByState(state.StateID).ToArray(); reviewers.Users = GetUsersFromPermissions(portalSettings, permissions); reviewers.Roles = GetRolesFromPermissions(portalSettings, permissions); } if (state.SendNotificationToAdministrators) { if (!IsAdministratorRoleAlreadyIncluded(portalSettings, reviewers.Roles)) { var adminRole = RoleController.Instance.GetRoleByName(portalSettings.PortalId, portalSettings.AdministratorRoleName); reviewers.Roles.Add(adminRole); } reviewers.Users = IncludeSuperUsers(reviewers.Users); } return(reviewers); }
public bool HasStateReviewerPermission(PortalSettings settings, UserInfo user, int stateId) { var permissions = _statePermissionsRepository.GetWorkflowStatePermissionByState(stateId); return(user.IsSuperUser || PortalSecurity.IsInRoles(user, settings, settings.AdministratorRoleName) || PortalSecurity.IsInRoles(user, settings, PermissionController.BuildPermissions(permissions.ToList(), ReviewPermissionKey))); }
public IEnumerable <WorkflowStatePermission> GetWorkflowStatePermissionByState(int stateId) { return(_workflowStatePermissionsRepository.GetWorkflowStatePermissionByState(stateId)); }