Beispiel #1
0
        protected virtual void Handle_ChooseExistingFacility(AddFacilityWizardViewModel viewModel)
        {
            //determine whether or not we have a selected CERSID
            if (viewModel.TargetCERSID.HasValue)
            {
                viewModel.State.CERSID = viewModel.TargetCERSID;

                //get the selected Facility
                var facility = Repository.Facilities.GetByID(viewModel.TargetCERSID.Value);
                if (facility != null)
                {
                    //lets check to see if the current user already has access to this Facility via its associated organization.
                    if (CurrentUserRoles.Contains(facility.CERSID, Context.Organization))
                    {
                        viewModel.SetStep(AddFacilityWizardStep.FacilityExistsAlreadyBelongsToUsersOrganization);
                    }
                    else
                    {
                        viewModel.SetStep(AddFacilityWizardStep.FacilityExistsRequestAccessOrTransfer);
                    }
                }
                else
                {
                    //not sure yet what to do about this....it shouldn't happen, but you never know...
                }
                Services.ViewModels.Facility.Management.SaveState(viewModel);
            }
        }
Beispiel #2
0
        /// <summary>
        /// آیا کاربر جاری نقش‌های مشخص شده را دارا است؟
        /// </summary>
        /// <param name="requiredRoles">لیست یک سری نقش برای بررسی</param>
        /// <returns>آیا کاربر جاری نقش‌های مشخص شده را دارا است؟</returns>
        public bool IsCurrentUserInRoles(string[] requiredRoles)
        {
            if (!IsCurrentUserAuthenticated)
            {
                return(false);
            }

            if (IsCurrentUserAdmin)
            {
                return(true);
            }

            if (CurrentUserRoles == null || !CurrentUserRoles.Any())
            {
                return(false);
            }

            foreach (var requiredRole in requiredRoles)
            {
                if (!AllValidSystemRoles.Contains(requiredRole.Trim()))
                {
                    throw new InvalidOperationException(string.Format("نقش {0} در مجموعه نقش‌های تعریف شده سیستم قرار ندارد.", requiredRole.Trim()));
                }
            }

            if (requiredRoles.Any(requiredRole => CurrentUserRoles.Contains(requiredRole.Trim())))
            {
                return(true);
            }

            return(false);
        }
Beispiel #3
0
        public ActionResult LoadSurveyForm()
        {
            var blSurvey = new BLSurvey();
            var type     = QuestionType.Faculty;
            var layout   = "";

            if (CurrentUserRoles.Contains("Advisor"))
            {
                layout = "~/Views/Shared/_LayoutAdvisor.cshtml";
                type   = QuestionType.Faculty;
            }

            if (CurrentUserRoles.Contains("Judge"))
            {
                layout = "~/Views/Shared/_LayoutJudge.cshtml";
                type   = QuestionType.Judge;
            }

            if (CurrentUserRoles.Contains(SystemRoles.Student.ToString()))
            {
                layout = "~/Views/Shared/_LayoutStudent.cshtml";
                type   = QuestionType.Student;
            }

            if (CurrentUserRoles.Contains(SystemRoles.Leader.ToString()))
            {
                layout = "~/Views/Shared/_LayoutLeader.cshtml";
                type   = QuestionType.Student;
            }

            if (CurrentUserRoles.Contains(SystemRoles.CoAdvisor.ToString()))
            {
                layout = "~/Views/Shared/_LayoutCoAdvisor.cshtml";
                type   = QuestionType.Faculty;
            }

            var surveyList = blSurvey.GetSurveyList(CurrentUserId, type);

            return(View("SurveyManagement",
                        new VmSurveyManagement
            {
                CurrentUserId = CurrentUserId,
                CurrentUserRoles = CurrentUserRoles,
                SurveyList = surveyList,
                ViewLayout = layout,
            }));
        }
Beispiel #4
0
        /// <summary>
        /// Gets the roles for user.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="projectId">The project id.</param>
        /// <returns></returns>
        public static List <Role> GetForUser(string userName, int projectId)
        {
            if (String.IsNullOrEmpty(userName))
            {
                throw new ArgumentOutOfRangeException("userName");
            }

            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(DataProviderManager.Provider.GetRolesByUserName(userName, projectId));
            }

            // performance enhancement
            // WRH 2012-04-06
            // use the current loaded user roles if we are looking at the same user
            return(userName.ToLower().Equals(HttpContext.Current.User.Identity.Name.ToLower()) ?
                   CurrentUserRoles.FindAll(p => p.ProjectId == projectId) :
                   DataProviderManager.Provider.GetRolesByUserName(userName, projectId));
        }
        public bool HasEditPermission(PageModule pageModule, bool isForCurrentRequest = false)
        {
            if (pageModule == null && pageModule.ModulePermissions == null)
            {
                throw new ArgumentNullException("pageModule.ModulePermissions", "PageModule and ModulePermissions should not be null");
            }

            var result = (pageModule.ModulePermissions.Any(modulePermission => modulePermission.PermissionId == Globals.ModuleEditPermissionId &&
                                                           (modulePermission.RoleId == Globals.AllUsersRoleId || (IsUserAuthenticated && CurrentUserRoles.Any(role => role.Id == modulePermission.RoleId)))));
            var page = isForCurrentRequest ? _scopeService.PageContext.CurrentPage : _pageRepository.GetPageAndPagePermissions(pageModule.PageId);

            return(result || (pageModule.InheritEditPermissions && HasEditPermission(page)));
        }
Beispiel #6
0
        public async Task <ActionResult> UpdateProfile(VmPerson model)
        {
            var result = true;
            var user   = UserManager.Users.FirstOrDefault(u => u.Id == model.UserId);

            if (
                string.IsNullOrWhiteSpace(model.FirstName) ||
                string.IsNullOrWhiteSpace(model.LastName) ||
                model.Agreement == null ||
                model.Agreement == false
                )
            {
                result = false;
            }
            else
            {
                model.CurrentUserId = CurrentUserId;

                var blPerson = new BLPerson();

                result = blPerson.UpdatePerson(model);

                if (result != false)
                {
                    user.PhoneNumber = model.PhoneNumber;

                    if (model.Email != null)
                    {
                        user.Email = model.Email;
                    }

                    var blUser = new BLUser();
                    blUser.UpdatePhoneUserNumber(user.Id, model.PhoneNumber);
                    //await UserManager.UpdateAsync(user);
                }
            }

            var message = "";

            if (result == false)
            {
                message = model.ActionMessageHandler.Message = "Operation has been failed...\n call system Admin";
            }
            else
            {
                message = model.ActionMessageHandler.Message = "Operation has been succeeded";
            }

            var returnUrl = "";

            if (CurrentUserRoles.Contains(SystemRoles.Admin.ToString()))
            {
                returnUrl = "/admin/index";
            }

            if (CurrentUserRoles.Contains("Advisor"))
            {
                if (user.EmailConfirmed == true)
                {
                    returnUrl = "/advisor/index";
                }
                else
                {
                    returnUrl = "/home/index";
                }
            }

            if (CurrentUserRoles.Contains(SystemRoles.Judge.ToString()))
            {
                if (user.EmailConfirmed == true)
                {
                    returnUrl = "/judge/index";
                }
                else
                {
                    returnUrl = "/home/index";
                }
            }

            if (CurrentUserRoles.Contains(SystemRoles.Student.ToString()))
            {
                returnUrl = "/student/index";
            }

            if (CurrentUserRoles.Contains(SystemRoles.Leader.ToString()))
            {
                returnUrl = "/leader/index";
            }
            if (CurrentUserRoles.Contains(SystemRoles.CoAdvisor.ToString()))
            {
                returnUrl = "/coadvisor/index";
            }

            if (CurrentUserRoles.Contains(SystemRoles.Lab.ToString()))
            {
                if (user.EmailConfirmed == true)
                {
                    returnUrl = "/lab/index";
                }
                else
                {
                    returnUrl = "/home/index";
                }
            }

            var jsonData = new
            {
                personId = model.Id,
                success  = result,
                message,
                returnUrl,
            };

            return(Json(jsonData, JsonRequestBehavior.AllowGet));

            //return View("../Author/PersonEdit", model);
        }
Beispiel #7
0
        public ActionResult LoadFinalGradesReport(int id = -1)
        {
            var blTeamMember = new BLTeamMember();
            var teamMember   = blTeamMember.GetTeamMemberByUserId(CurrentUserId);
            var layout       = "";
            var teamId       = id;

            if (id == -1)
            {
                teamId = teamMember.TeamId;
            }

            if (CurrentUserRoles.Contains("Judge") == false)
            {
                if (CurrentUserRoles.Contains("Advisor"))
                {
                    layout = "~/Views/Shared/_LayoutAdvisor.cshtml";
                }

                if (CurrentUserRoles.Contains(SystemRoles.Student.ToString()))
                {
                    layout = "~/Views/Shared/_LayoutStudent.cshtml";
                }

                if (CurrentUserRoles.Contains(SystemRoles.Leader.ToString()))
                {
                    layout = "~/Views/Shared/_LayoutLeader.cshtml";
                }

                if (CurrentUserRoles.Contains(SystemRoles.CoAdvisor.ToString()))
                {
                    layout = "~/Views/Shared/_LayoutCoAdvisor.cshtml";
                }

                //var blTeam = new BLTeam();
                //var serveyIsComplete = blTeam.GetTeamById(teamId).Survey;

                int inCompleteSurveyCount = 0;
                var allMember             = blTeamMember.GetTeamMembers(teamId);

                inCompleteSurveyCount = allMember.Where(m => (m.RoleName != "Advisor" && m.RoleName != "CoAdvisor") && m.Survey == false).Count();

                if (inCompleteSurveyCount > 0)
                {
                    return(View("Error", new VMHandleErrorInfo
                    {
                        CurrentUserId = CurrentUserId,
                        ErrorMessage = "In order to be able to see your team result, all team members (except Advisors) should complete the servey",
                        ViewLayout = layout
                    }));
                }
            }

            var blGrade          = new BLGrade();
            var gradegReportList = blGrade.GetStudentGradeReportList(CurrentUserId, teamId);

            var otherTeamsGradeReportList = blGrade.GetStudentOtherTeamGradeReportList(CurrentUserId, teamId);

            var currentTeamContainer = otherTeamsGradeReportList.First().TeamGradeList.Where(t => t.TeamId == teamId);

            if (currentTeamContainer.Count() > 0)
            {
                var currentTeam = otherTeamsGradeReportList.First().TeamGradeList.Where(t => t.TeamId == teamId).First();

                otherTeamsGradeReportList.First().TeamGradeList.Remove(currentTeam);
            }
            return(View("FinalGradeReportManagement", new VmFinalGradeReportManagement
            {
                CurrentUserId = CurrentUserId,
                GradeReportList = gradegReportList,
                OtherTeamsGradeReportList = otherTeamsGradeReportList,
                ViewLayout = layout,
            }));
        }