Пример #1
0
        // GET: /Account/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId      = User.Identity.GetUserId();
            var currentUser = UserManager.FindById(User.Identity.GetUserId());

            ViewBag.FirstName     = currentUser.FirstName;
            ViewBag.LastName      = currentUser.LastName;
            ViewBag.PhoneNumber   = currentUser.PhoneNumber;
            ViewBag.Email         = currentUser.Email;
            ViewBag.StreetAddress = currentUser.StreetAddress;
            ViewBag.City          = currentUser.City;
            ViewBag.State         = currentUser.State;
            ViewBag.Zip           = currentUser.Zip;

            var model = new IndexViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            return(View(model));
        }
Пример #2
0
        public async Task <ActionResult> Edit([Bind(Include = "FirstName,MiddleInitial,LastName,Email,PhoneNumber,Birthday,Street,ZipCode,City,State,PopcornPoints,UserModelID")] UserModel model)
        {
            if (ModelState.IsValid)
            {
                var user = UserManager.FindById(model.UserModelID);
                user.FirstName     = model.FirstName;
                user.MiddleInitial = model.MiddleInitial;
                user.LastName      = model.LastName;
                user.Email         = model.Email;
                user.PhoneNumber   = model.PhoneNumber;
                user.Birthday      = model.Birthday;
                user.Street        = model.Street;
                user.ZipCode       = model.ZipCode;
                user.City          = model.City;
                user.State         = model.State;
                user.PopcornPoints = model.PopcornPoints;

                var result = await UserManager.UpdateAsync(user);

                if (!result.Succeeded)
                {
                    AddErrors(result);
                    return(RedirectToAction("Edit", new { Id = model.UserModelID }));
                }
                return(RedirectToAction("Index", new { Id = model.UserModelID, message = ManageMessageId.DeatilsChangeSuccess }));
            }
            return(View(model));
        }
        public Result <int> UpdateResult(ResetPasswordViewModel model)
        {
            Result <int> result = new Result <int>();

            try
            {
                AppUserManager.RemovePassword(Common.CurrentUser.Id);
                AppUserManager.AddPassword(Common.CurrentUser.Id, model.Password);
                Users user = AppUserManager.FindById(Common.CurrentUser.Id);
                user.TempPassword = null;
                AppUserManager.Update(user);
                var identity = new ClaimsIdentity(HttpContext.Current.User.Identity);
                var ctx      = _iOwinContext;

                AuthenticationManager.AuthenticationResponseGrant = new AuthenticationResponseGrant
                                                                        (new ClaimsPrincipal(identity), new AuthenticationProperties {
                    IsPersistent = true
                });
            }
            catch (Exception ex)
            {
                result.success = false;
                result.AddError(ex.Message);
            }
            return(result);
        }
        public Result <int> SendWelcomeEmmail(long userId, ControllerBase controllerBase)
        {
            Result <int> result = new Result <int>();

            try
            {
                Users user = AppUserManager.FindById(userId);
                if (user == null)
                {
                    result.success = false;
                    result.AddError("User does not exist in system");
                }
                else
                {
                    string defaultPath = "~/Views/Templates/Default/WelcomeEmail.cshtml";


                    string emailBody = Common.RenderRazorViewToString(defaultPath, user, controllerBase);
                    AppUserManager.SendEmail(user.Id, "Welcome Email", emailBody);
                    AppUserManager.Update(user);
                }
            }
            catch (Exception ex)
            {
                result.success = false;
                result.AddError(ex.Message);
            }

            return(result);
        }
Пример #5
0
        public IHttpActionResult PutCloseCoachingProgram(int id)
        {
            var currentUser     = AppUserManager.FindById(User.Identity.GetUserId());
            var coachingProgram = GetCoachingPrograms(currentUser)
                                  .FirstOrDefault(i => i.Id == id);

            if (coachingProgram == null || coachingProgram.IsClosed)
            {
                return(BadRequest("Program Not Found"));
            }

            coachingProgram.IsClosed = true;
            AppDb.Entry(coachingProgram).Property(i => i.IsClosed).IsModified = true;
            coachingProgram.UpdatedAt = DateTime.Now;
            AppDb.Entry(coachingProgram).Property(i => i.UpdatedAt).IsModified = true;

            try
            {
                AppDb.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CoachingProgramExists(id, currentUser))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #6
0
        public IHttpActionResult GetSurveysForAdmin(int pageNumber = 1, int pageSize = 25, String sort = "CreatedAt desc")
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());
            var surveys     = (IQueryable <Survey>)AppDb.Survey;

            if (String.IsNullOrEmpty(sort) || sort == "null")
            {
                surveys = surveys.OrderBy(i => i.CreatedAt);
            }
            else
            {
                if (sort.EndsWith(","))
                {
                    sort = sort.TrimEnd(',');
                }
                surveys = surveys.OrderBy(sort);
            }
            var count = surveys.Count();

            surveys = surveys
                      .Skip((pageNumber - 1) * pageSize)
                      .Take(pageSize);
            return(Ok(new GetSurveysForAdminResponse
            {
                TotalItems = count,
                Items = surveys.ToList(),
            }));
        }
Пример #7
0
        public static MvcHtmlString GetUserName(this HtmlHelper html, string id)

        {
            AppUserManager mgr = HttpContext.Current.GetOwinContext().GetUserManager <AppUserManager>();

            return(new MvcHtmlString(mgr.FindById(id).UserName));
        }
        // GET: api/Assignments
        public IQueryable <Assignment> GetAssignments(int programId)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());

            return(GetAssignments(currentUser)
                   .Where(i => i.CoachingProgram.Id == programId));
        }
Пример #9
0
        public IHttpActionResult GetUserInfo()
        {
            //var externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());

            if (currentUser == null)
            {
                return(NotFound());
            }
            var user = new UserInfoViewModel
            {
                Email     = currentUser.Email,
                FirstName = currentUser.FirstName,
                LastName  = currentUser.LastName,
                //LoginProvider = externalLogin.LoginProvider,
                Roles           = currentUser.GetRoles(AppRoleManager),
                Phone           = currentUser.Phone,
                Company         = currentUser.Company,
                Position        = currentUser.Position,
                LinkedInProfile = currentUser.LinkedInProfile,
                WorkExperience  = currentUser.WorkExperience,
                ABN             = currentUser.ABN,
                Address         = currentUser.Address,
                Timezone        = currentUser.Timezone,
                CVLink          = currentUser.CVLink,
                Webex           = currentUser.Webex,
            };

            return(Ok(user));
        }
Пример #10
0
        /// <summary>
        /// Get AppUser's name.
        /// </summary>
        /// <param name="html"></param>
        /// <param name="id">Search user by this id.</param>
        /// <returns></returns>
        public static MvcHtmlString GetUserName(this HtmlHelper html, string id)
        {
            AppUserManager manager = DependencyResolver.Current.GetService <AppUserManager>();
            string         result  = manager.FindById(id)?.UserName;

            return(new MvcHtmlString(result));
        }
Пример #11
0
        public string EditUser(AppUser user, string password = null)
        {
            AppUserManager userMgr = new AppUserManager(new UserStore <AppUser>(db));
            var            us      = userMgr.FindById(user.Id);
            var            acc     = db.Accounts.FirstOrDefault(a => a.Id == user.Id);

            if (us != null && acc != null)
            {
                us.UserName    = user.UserName;
                us.Email       = user.Email;
                us.PhoneNumber = user.PhoneNumber;

                if (!String.IsNullOrEmpty(password))
                {
                    us.PasswordHash = userMgr.PasswordHasher.HashPassword(password);
                }

                acc.UserName    = user.UserName;
                acc.Email       = user.Email;
                acc.PhoneNumber = user.PhoneNumber;

                db.Entry(acc).State = EntityState.Modified;
                db.Entry(us).State  = EntityState.Modified;
                return(null);
            }
            return("Пользователь не найден");
        }
Пример #12
0
        public async Task <RepositoryResult <string> > GetRoleByUserIdAndRoleNameAsync(int userId, string roleName, bool isAdmin = false)
        {
            try
            {
                if (userId <= 0 || string.IsNullOrWhiteSpace(roleName))
                {
                    return(new RepositoryResult <string>(HttpStatusCode.BadRequest));
                }
                var user = AppUserManager.FindById(userId);
                if (user == null)
                {
                    return(new RepositoryResult <string>(HttpStatusCode.NotFound));
                }

                IList <string> roleList = await AppUserManager.GetRolesAsync(user.Id);

                if (!isAdmin)
                {
                    roleList = roleList.Where(rl => rl != "admin").ToList();
                }

                return(new RepositoryResult <string>(HttpStatusCode.OK, roleList.FirstOrDefault(r => r == roleName)));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #13
0
        public ActionResult Edit(long adminId)
        {
            AppUser user  = userManager.FindById(adminId);
            var     roles = roleManager.Roles.ToList();

            AdminUserEditModel model = new AdminUserEditModel {
                AdminId     = user.Id,
                UserName    = user.UserName,
                PhoneNumber = user.PhoneNumber,
                Email       = user.Email,
                Password    = user.PasswordHash,
                Roles       = roles
            };

            return(View(model));
        }
Пример #14
0
        public IHttpActionResult UserUpdate(UpdateUserModel model)
        {
            int userId;

            if (!User.TryGetUserId(out userId))
            {
                return(Unauthorized());
            }

            if (model.Id != userId)
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }

            var userToUpdate = _userManager.FindById(model.Id);

            if (userToUpdate == null)
            {
                return(NotFound());
            }

            _securityContextCommand.UpdateUser(userToUpdate, model);

            var response = userToUpdate.ToUserModel();

            return(PutResults.Accepted(this, response));
        }
Пример #15
0
        public IHttpActionResult PutProgramMedia(int id, ProgramMedia item)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (id != item.Id)
            {
                return(BadRequest());
            }

            var currentUser  = AppUserManager.FindById(User.Identity.GetUserId());
            var programMedia = GetProgramMediaList(currentUser)
                               .FirstOrDefault(i => i.Id == item.Id);

            if (id != item.Id)
            {
                return(NotFound());
            }
            if (programMedia.MediaType == MediaType.Resource && !(AppUserManager.IsInRole(currentUser.Id, "Coach") || AppUserManager.IsInRole(currentUser.Id, "Admin")))
            {
                return(BadRequest("Only Coaches can upload Resources"));
            }

            var isLink = !String.IsNullOrEmpty(programMedia.Link);

            if (isLink && String.IsNullOrEmpty(item.Link))
            {
                return(BadRequest("Links cannot be empty"));
            }
            if (!isLink && !String.IsNullOrEmpty(item.Link))
            {
                return(BadRequest("Non Links do not have a Link Property"));
            }

            AppDb.Entry(programMedia).State = EntityState.Modified;

            programMedia.Name      = item.Name;
            programMedia.BodyText  = item.BodyText;
            programMedia.Link      = item.Link;
            programMedia.UpdatedAt = DateTime.Now;

            try
            {
                AppDb.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProgramMediaExists(id, currentUser))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #16
0
        protected AppUser GetCurrentUser()
        {
            AppUserManager userManager = DependencyResolver.Current.GetService <AppUserManager>();
            string         userId      = HttpContext.User.Identity.GetUserId();
            AppUser        user        = userManager.FindById(userId);

            return(user);
        }
Пример #17
0
        public IQueryable <Survey> GetSurveys(int programId)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());

            return(GetCoachingProgramSurveys(currentUser)
                   .Where(i => i.CoachingProgram.Id == programId)
                   .Select(i => i.Survey)
                   .Distinct());
        }
Пример #18
0
        private bool HasPassword()
        {
            var user = UserManager.FindById(User.Identity.GetUserId());

            if (user != null)
            {
                return(user.PasswordHash != null);
            }
            return(false);
        }
Пример #19
0
        public ClaimsIdentity GenerateUserIdentity(AppUserManager manager)
        {
            // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
            var userIdentity = manager.CreateIdentity(this, DefaultAuthenticationTypes.ApplicationCookie);
            // Add custom user claims here
            var id   = userIdentity.GetUserId <int>();
            var user = manager.FindById(id);

            userIdentity.AddClaim(new Claim("User.FullName", user.FullName));
            return(userIdentity);
        }
Пример #20
0
        public async Task <HttpResponseMessage> PostFormData(int programId, MediaType mediaType)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());

            if (mediaType == MediaType.Resource && !(AppUserManager.IsInRole(currentUser.Id, "Coach") || AppUserManager.IsInRole(currentUser.Id, "Admin")))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Only Coaches can upload Resources"));
            }
            var program = GetCoachingPrograms(currentUser)
                          .FirstOrDefault(i => i.Id == programId);

            if (program == null)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden));
            }
            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            string root     = program.GetRootFolder();
            var    provider = new MultipartFormDataStreamProvider(root);

            try
            {
                // Read the form data.
                await Request.Content.ReadAsMultipartAsync(provider);

                var programMediaList = new List <ProgramMedia>();
                foreach (var file in provider.FileData)
                {
                    var originalFileName = file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty);
                    var programMedia     = new ProgramMedia
                    {
                        BodyText         = String.Empty,
                        CoachingProgram  = program,
                        CreatedAt        = DateTime.Now,
                        Name             = originalFileName,
                        OriginalFileName = originalFileName,
                        FileName         = Path.GetFileName(file.LocalFileName),
                        MediaType        = mediaType,
                        UpdatedAt        = DateTime.Now,
                    };
                    AppDb.ProgramMedia.Add(programMedia);
                    programMediaList.Add(programMedia);
                }
                AppDb.SaveChanges();
                return(Request.CreateResponse(HttpStatusCode.OK, programMediaList));
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
Пример #21
0
        public async Task <RepositoryResult <IList <string> > > SetRoleByUserIdAsync(int userId, IList <string> roleList, bool isAdmin = false)
        {
            try
            {
                if (userId <= 0 || roleList == null)
                {
                    return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest));
                }
                var user = AppUserManager.FindById(userId);
                if (user == null)
                {
                    return(new RepositoryResult <IList <string> >(HttpStatusCode.NotFound));
                }

                var currentRoles = await AppUserManager.GetRolesAsync(user.Id);

                if (!isAdmin)
                {
                    currentRoles = currentRoles.Where(rl => rl != "admin").ToList();
                }

                var rolesNotExists = roleList.Except(AppRoleManager.Roles.Select(x => x.Name)).ToArray();
                if (rolesNotExists.Count() > 0)
                {
                    return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, string.Format("ロール'{0}'は存在していません。", string.Join(",", rolesNotExists))));
                }

                IdentityResult removeResult = await AppUserManager.RemoveFromRolesAsync(user.Id, currentRoles.ToArray());

                if (!removeResult.Succeeded)
                {
                    return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, "権限の剥奪に失敗しました。")
                    {
                        identityResult = removeResult
                    });
                }

                IdentityResult addResult = await AppUserManager.AddToRolesAsync(user.Id, roleList.ToArray());

                if (!addResult.Succeeded)
                {
                    return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, "権限の付与に失敗しました。")
                    {
                        identityResult = addResult
                    });
                }

                return(new RepositoryResult <IList <string> >(HttpStatusCode.OK, roleList));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #22
0
        public async Task <ActionResult> Edit([Bind(Include = "FirstName,LastName,EmailAddress,PhoneNumber,StreetAddress,ZipCode,City,State,UserModelID")] UserModel model)

        {
            if (ModelState.IsValid)

            {
                var user = UserManager.FindById(model.UserModelID);

                user.FirstName = model.FirstName;

                user.LastName = model.LastName;

                user.Email = model.EmailAddress;

                user.PhoneNumber = model.PhoneNumber;

                user.StreetAddress = model.StreetAddress;

                user.ZipCode = model.ZipCode;

                user.City = model.City;

                user.State = model.State;



                var result = await UserManager.UpdateAsync(user);

                if (!result.Succeeded)

                {
                    AddErrors(result);

                    return(RedirectToAction("Edit", new { Id = model.UserModelID }));
                }

                return(RedirectToAction("Index", new { Id = model.UserModelID, message = ManageMessageId.DetailsChangeSuccess }));
            }

            return(View(model));
        }
Пример #23
0
        protected void Session_End(object sender, EventArgs e)
        {
            if ((Session["userId"] != null))
            {
                AppUserManager usermanager  = new AppUserManager(new UserStore <AppUser>(new AppDbContext()));
                var            user         = usermanager.FindById(Session["userId"].ToString());
                var            deleteresult = usermanager.DeleteAsync(user);

                var token = user.Token;
                new AuthorizeServiceClient().DeactivateToken(token);
            }
        }
        public IHttpActionResult GetAssignment(int id)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());
            var assignment  = GetAssignments(currentUser)
                              .SingleOrDefault(i => i.Id == id);

            if (assignment == null)
            {
                return(NotFound());
            }
            return(Ok(assignment));
        }
Пример #25
0
        public HttpResponseMessage Create(HttpRequestMessage request, AnnouncementViewModel announcementVm)
        {
            if (ModelState.IsValid)
            {
                var newAnnoun = new Announcement();
                try
                {
                    newAnnoun.Content     = announcementVm.Content;
                    newAnnoun.Status      = announcementVm.Status;
                    newAnnoun.Title       = announcementVm.Title;
                    newAnnoun.CreatedDate = DateTime.Now;
                    newAnnoun.UserId      = User.Identity.GetUserId();
                    var listUser = AppUserManager.Users;
                    //foreach (var user in announcementVm.AnnouncementUsers)
                    //{
                    //    newAnnoun.AnnouncementUsers.Add(new AnnouncementUser()
                    //    {
                    //        UserId = user.UserId,
                    //        HasRead = false
                    //    });
                    //}
                    foreach (var user in listUser)
                    {
                        newAnnoun.AnnouncementUsers.Add(new AnnouncementUser()
                        {
                            UserId  = user.Id,
                            HasRead = false
                        });
                    }
                    _announcementService.Create(newAnnoun);
                    _announcementService.Save();
                    var listuser = _announcementService.ListByNotificationId(newAnnoun.ID);
                    var announ   = _announcementService.GetDetail(newAnnoun.ID);
                    var appuser  = AppUserManager.FindById(newAnnoun.UserId);
                    announ.AppUser = appuser;
                    var announVm = Mapper.Map <Announcement, AnnouncementViewModel>(announ);
                    announVm.AnnouncementUsers = null;
                    //push notification, push user vào signaIR
                    TMDTHub.PushToAllUsers(announVm, null);

                    return(request.CreateResponse(HttpStatusCode.OK, announcementVm));
                }
                catch (Exception dex)
                {
                    return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message));
                }
            }
            else
            {
                return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }
Пример #26
0
        public IHttpActionResult GetProgramMedia(Int64 id, MediaType mediaType)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());
            var item        = GetProgramMediaList(currentUser)
                              .Where(i => i.MediaType == mediaType)
                              .FirstOrDefault(i => i.Id == id);

            if (item == null)
            {
                return(NotFound());
            }
            return(Ok(item));
        }
Пример #27
0
        public SantaProfileModel GetProfile()
        {
            var id   = User.Identity.GetUserId();
            var user = _santaManager.FindById(id);

            var santaViewModel = new SantaProfileModel
            {
                Email = user.Email,
                Name  = user.Name
            };

            return(santaViewModel);
        }
        public IHttpActionResult DeleteAssignment(int id)
        {
            var currentUser = AppUserManager.FindById(User.Identity.GetUserId());
            var assignment  = GetAssignments(currentUser)
                              .SingleOrDefault(i => i.Id == id);

            if (assignment == null)
            {
                return(NotFound());
            }
            AppDb.Assignment.Remove(assignment);
            AppDb.SaveChanges();
            return(Ok(assignment));
        }
        public IHttpActionResult UpdateProfile(UserInfoViewModel userInfo)
        {
            var user = AppUserManager.FindById(User.Identity.GetUserId());

            if (User.Identity != null && user != null)
            {
                new UserAccess().UpdateUserInfo(userInfo);
                return(Ok());
            }
            else
            {
                return(BadRequest("Error updating user."));
            }
        }
Пример #30
0
        private static MailMessage CreateEmailMessage(NotificationServiceSettings settings, NotificationMessageContainer messageContainer)
        {
            var userMapanger  = new AppUserManager(new AppUserStore(DbContext));
            var messageToSend = (EmailNotificationMessage)messageContainer.Message;
            var user          = userMapanger.FindById(messageContainer.UserId.Value);

            return(new MailMessage
            {
                From = new MailAddress(settings.SmtpCredentials.SmtpNotificationEmail, settings.SmtpCredentials.SmtpSenderName),
                To = { user.Email },
                Subject = messageToSend.Subject,
                Body = messageToSend.Body,
                IsBodyHtml = false
            });
        }