コード例 #1
0
        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);
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
 public IEnumerable <WorkflowStatePermission> GetWorkflowStatePermissionByState(int stateId)
 {
     return(_workflowStatePermissionsRepository.GetWorkflowStatePermissionByState(stateId));
 }