Esempio n. 1
0
        public JsonResult Editnews(NewsViewModel newsViewModel)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }
                if (token.Role == Role.Student || token.Role == Role.Applicant)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = "Sorry, you are not authorized to perform this action",
                    }));
                }
                var news = _context.PortalNews.FirstOrDefault(p => p.Id == newsViewModel.Id);
                if (news == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Could not find the news"
                    }));
                }
                news.NewsBody         = newsViewModel.NewsBody;
                news.ExpiryDate       = newsViewModel.ExpiryDate;
                news.NewsStatus       = newsViewModel.NewsStatus;
                news.NewsTitle        = newsViewModel.NewsTitle;
                news.PortalNewsTypeId = newsViewModel.PortalNewsTypeId;
                news.TargetAudience   = newsViewModel.TargetAudience;
                news.TargetGroups     = newsViewModel.TargetGroups;

                _context.Update(news);
                _context.SaveChanges();

                return(Json(new ReturnData <string>
                {
                    Success = true,
                    Message = "Successful"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "An error occurred,please retry : " + ex.Message
                }));
            }
        }
Esempio n. 2
0
        public JsonResult EditEventsType(PortalEventTypes portalEventTypes)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }

                if (token.Role != Role.Admin)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = "Sorry, you are not authorized to access this page",
                    }));
                }

                var eventTypes = _context.PortalEventTypes.FirstOrDefault(t => t.Id == portalEventTypes.Id);
                if (eventTypes == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Could not find event type"
                    }));
                }

                eventTypes.EventTypeName = portalEventTypes.EventTypeName;

                _context.Update(eventTypes);
                _context.SaveChanges();

                return(Json(new ReturnData <string>
                {
                    Success = true,
                    Message = "Event updated successfully"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Server Error, Please try again",
                    Error = new Error(ex)
                }));
            }
        }
Esempio n. 3
0
        public JsonResult EditUserGroup(UserGroupViewModel request, string groupName)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }
                if (token.Role != Role.Admin)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = "Sorry, you are not authorized to perform this action",
                    }));
                }
                var userGroup = _context.UserGroups.FirstOrDefault(g => g.GroupName == groupName);
                if (userGroup == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Could not find the usergroup"
                    }));
                }
                userGroup.GroupName         = request.GroupName;
                userGroup.Role              = request.Role;
                userGroup.IsDefault         = request.IsDefault;
                userGroup.Status            = request.Status;
                userGroup.AllowedPrivileges = request.Privileges;

                _context.Update(userGroup);
                _context.SaveChanges();

                return(Json(new ReturnData <string>
                {
                    Success = true,
                    Message = "Group updated successfully"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "An error occurred,please retry : " + ex.Message,
                    Error = new Error(ex)
                }));
            }
        }
Esempio n. 4
0
        public JsonResult EditUserGroupPrivilege(UserGroupPrivilegeViewModel request)
        {
            try
            {
                var token = _tokenValidator.Validate(HttpContext);
                if (!token.Success)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        NotAuthenticated = true,
                        Message = $"Unauthorized:-{token.Message}",
                    }));
                }
                var privileges = _context.UserGroupPrivileges.FirstOrDefault(p => p.Id == request.Id);
                if (privileges == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Could not find the privilege"
                    }));
                }
                privileges.Action        = request.Action;
                privileges.PrivilegeName = request.PrivilegeName;
                privileges.Role          = request.Role;

                _context.Update(privileges);
                _context.SaveChanges();

                return(Json(new ReturnData <string>
                {
                    Success = true,
                    Message = "Successful"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Server Error, Please try again",
                    Error = new Error(ex)
                }));
            }
        }
Esempio n. 5
0
        public JsonResult ResetPassword(RegisterViewModel request)
        {
            request.Password = request.Password ?? "";
            var requiredFields = new List <Tuple <string, string, DataType> >
            {
                Tuple.Create("username", request.RegNumber, DataType.Default),
            };

            var validUserInputs = _validateService.Validate(requiredFields);

            if (!validUserInputs.Valid)
            {
                return(Json(new ReturnData <string>
                {
                    Message = validUserInputs.Errors,
                    Success = validUserInputs.Valid
                }));
            }

            try
            {
                var registeredUser = _context.Users.FirstOrDefault(u => (u.UserName.ToUpper().Equals(request.RegNumber.ToUpper())) || (u.Code.ToString() == request.RegNumber) || (u.Id.ToString() == request.RegNumber));
                if (registeredUser == null)
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Username not found"
                    }));
                }

                if (string.IsNullOrEmpty(registeredUser.UserName))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Username not found"
                    }));
                }

                registeredUser.PasswordHash = registeredUser.PasswordHash ?? "";
                var hashedNewPassword = SecurePasswordHasher.Hash(request.Password);
                if (hashedNewPassword.ToUpper().Equals(registeredUser.PasswordHash.ToUpper()))
                {
                    return(Json(new ReturnData <string>
                    {
                        Success = false,
                        Message = "Kindly use a different password from the previous"
                    }));
                }

                var userResetPassword = new UserResetPassword();

                if ((request.Role == Role.Admin) || (request.Role == Role.All))
                {
                    userResetPassword             = _context.UserResetPasswords.FirstOrDefault(u => u.UserId == registeredUser.Id && u.Status == false);
                    registeredUser.PasswordHash   = SecurePasswordHasher.Hash(request.Password);
                    registeredUser.EmailConfirmed = true;
                    registeredUser.Status         = true;
                    if (userResetPassword != null)
                    {
                        userResetPassword.Status = true;
                        _context.Update(userResetPassword);
                    }

                    _context.Update(registeredUser);
                    _context.SaveChanges();

                    return(Json(new ReturnData <string>
                    {
                        Success = true,
                        Message = "Password reset successful"
                    }));
                }

                userResetPassword = new UserResetPassword
                {
                    UserId      = registeredUser.Id,
                    ResetCode   = Guid.NewGuid().ToString(),
                    DateCreated = DateTime.Now,
                    Status      = false
                };
                var success = false;

                var userGroup = _context.UserGroups.FirstOrDefault(u => u.Id == registeredUser.UserGroupsId);

                mailMethod = MailSendMethod.PasswordReset;
                var subject = "Reset Account Password";
                if (userGroup?.Role == Role.Student)
                {
                    var classStatus  = _context.Settings.FirstOrDefault()?.ClassStatus;
                    var result       = _unisolApiProxy.CheckStudentExists(request.RegNumber, classStatus).Result;
                    var jdata        = new ProcessJsonReturnResults <UserDetails>(result).UnisolApiData;
                    var emailContent = new MailsViewModel {
                        UserCode   = request.RegNumber,
                        Firstname  = jdata.Data.Names,
                        Code       = userResetPassword.ResetCode,
                        Email      = registeredUser.Email,
                        MailMethod = mailMethod,
                        PortalUrl  = request.PortalUrl,
                        Subject    = subject
                    };
                    success = emailSender.SendEmail(emailContent);
                }
                if (userGroup?.Role == Role.Staff)
                {
                    var result       = _unisolApiProxy.CheckEmployeeExists(request.RegNumber).Result;
                    var jdata        = JsonConvert.DeserializeObject <ReturnData <HrpEmployee> >(result);
                    var emailContent = new MailsViewModel
                    {
                        UserCode   = request.RegNumber,
                        Firstname  = jdata.Data.Names,
                        PortalUrl  = request.PortalUrl,
                        Code       = userResetPassword.ResetCode,
                        Email      = registeredUser.Email,
                        MailMethod = mailMethod,
                        Subject    = subject
                    };
                    success = emailSender.SendEmail(emailContent);
                }

                if (success)
                {
                    registeredUser.Code = userResetPassword.ResetCode;
                    _context.SaveChanges();

                    var email = registeredUser.Email.Split('@');
                    return(Json(new ReturnData <bool>
                    {
                        Success = true,
                        Message = $"We have sent a link to reset your password, please check your email ({email[0].Substring(0, 1)}*****{email[0].Substring(email[0].Length - 2)}@{email[1]})."
                    }));
                }
                return(Json(new ReturnData <bool>
                {
                    Success = false,
                    Message = "There was a problem while trying reset your password, please contact admin"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new ReturnData <string>
                {
                    Success = false,
                    Message = "Something went wrong, please try again after sometime.",
                    Error = new Error(ex)
                }));
            }
        }