Example #1
0
        public bool For(ClaimsPrincipal user, AllReadyTask task, UserManager<ApplicationUser> userManager)
        {
            var userId = userManager.GetUserId(user);

            if (user.IsUserType(UserType.SiteAdmin))
            {
                return true;
            }

            if (user.IsUserType(UserType.OrgAdmin))
            {
                //TODO: Modify to check that user is organization admin for organization of task
                return true;
            }

            if (task.Event?.Organizer != null && task.Event.Organizer.Id == userId)
            {
                return true;
            }

            if (task.Event?.Campaign?.Organizer != null && task.Event.Campaign.Organizer.Id == userId)
            {
                return true;
            }

            return false;
        }
 public static EventViewModel WithUserInfo(this EventViewModel viewModel, Models.Event campaignEvent, ClaimsPrincipal user, IAllReadyDataAccess dataAccess, UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signedInManager)
 {
     if (signedInManager.IsSignedIn(user))
     {
         var userId = userManager.GetUserId(user);
         var appUser = dataAccess.GetUser(userId);
         viewModel.UserId = userId;
         viewModel.UserSkills = appUser?.AssociatedSkills?.Select(us => new SkillViewModel(us.Skill)).ToList();
         viewModel.IsUserVolunteeredForEvent = dataAccess.GetEventSignups(viewModel.Id, userId).Any();
         var assignedTasks = campaignEvent.Tasks.Where(t => t.AssignedVolunteers.Any(au => au.User.Id == userId)).ToList();
         viewModel.UserTasks = new List<TaskViewModel>(assignedTasks.Select(data => new TaskViewModel(data, userId)).OrderBy(task => task.StartDateTime));
         var unassignedTasks = campaignEvent.Tasks.Where(t => t.AssignedVolunteers.All(au => au.User.Id != userId)).ToList();
         viewModel.Tasks = new List<TaskViewModel>(unassignedTasks.Select(data => new TaskViewModel(data, userId)).OrderBy(task => task.StartDateTime));
         viewModel.SignupModel = new EventSignupViewModel()
         {
             EventId = viewModel.Id,
             UserId = userId,
             Name = appUser.Name,
             PreferredEmail = appUser.Email,
             PreferredPhoneNumber = appUser.PhoneNumber
         };
     }
     else
     {
         viewModel.UserTasks = new List<TaskViewModel>();
     }
     return viewModel;
 }