public ResponseMessage <User> Update(ChangePasswordRequest changePasswordRequest)
        {
            ResponseMessage <User> response = new ResponseMessage <User>();
            User entity = GetByID(changePasswordRequest.PublicID).ResponseObject;

            try
            {
                changePasswordRequest.OldPassword = PasswordHasher.Create(changePasswordRequest.OldPassword, entity.Email);
                changePasswordRequest.NewPassword = PasswordHasher.Create(changePasswordRequest.NewPassword, entity.Email);
                if (entity.Password == changePasswordRequest.OldPassword)
                {
                    entity.Password         = changePasswordRequest.NewPassword;
                    response.ResponseObject = _userRepository.Update(entity);
                    response.IsSuccess      = true;
                    response.ErrorMessage   = "Success";
                }
                else
                {
                    throw new Exception("Passowords don't match!");
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
        public ResponseMessage <User> Create(RegisterUserRequest data)
        {
            //TODO: RegisterUserRequest beletenni minden olyan tulajdonsagot ami szukseges a User es a Profile objektumok letrehozasara
            ResponseMessage <User> response = new ResponseMessage <User>();

            try
            {
                User user = new User(data);
                user.Password           = PasswordHasher.Create(data.Password, data.Email);
                user.PublicID           = UniqKeyGenerator.Generate();
                response.ResponseObject = _userRepository.Create(user);

                Profile profile = data.ConvertTo <Profile>();
                profile.ID = user.PublicID;
                _profileRepository.Create(profile);


                response.IsSuccess    = true;
                response.ErrorMessage = "Success";
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
        public ResponseMessage <bool> MatchPassword(string password, string id)
        {
            ResponseMessage <bool> response = new ResponseMessage <bool>();

            try
            {
                User user = _userRepository.GetByID(id.Reverse());
                if (user.Password == PasswordHasher.Create(password, user.Email))
                {
                    response.ResponseObject = true;
                }
                else
                {
                    response.ResponseObject = false;
                }

                response.IsSuccess    = true;
                response.ErrorMessage = "Success";
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
        public ResponseMessage <bool> ChangePassword(ChangePasswordRequest model, string identity)
        {
            ResponseMessage <bool> response = new ResponseMessage <bool>();

            try
            {
                //find the user
                User user = _userRepository.FindByUniq(identity.Reverse());

                //validate the old password
                string password = PasswordHasher.Create(model.OldPassword, user.Email);
                if (user.Password != password)
                {
                    throw new Exception($"Old password doesn't match.");
                }

                //create the new password
                password      = PasswordHasher.Create(model.NewPassword, user.Email);
                user.Password = password;

                //update user data
                _userRepository.Update(user);

                response.ResultObject = true;
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
Beispiel #5
0
 public IActionResult AddStudent([FromBody] Student student)
 {
     student.IndexNumber = $"s{new Random().Next(1, 20000)}";
     student.Salt        = PasswordHasher.CreateSalt();
     student.Password    = PasswordHasher.Create(student.Password, student.Salt);
     studentDbService.AddStudent(student);
     return(Ok(student));
 }
        /*public ResponseMessage<bool> CreateLinkAsync(ForgotPasswordRequest model)
         * {
         *  ResponseMessage<bool> response = new ResponseMessage<bool>();
         *  User user = null;
         *
         *  try
         *  {
         *      //first find the user by the given email
         *      user.Email = _userRepository.FindEmail(model.Email);
         *
         *      //if there is no registered user with the given email, we emmit error
         *      if (user == null)
         *      {
         *          throw new Exception($"There are no registered user with the provided {model.Email} e-mail address.");
         *      }
         *
         *      //now create the reset password token (a hash)
         *      string resetPasswordToken = ResetPasswordUrl.Create(user.PublicID);
         *
         *      ResetPasswordHashEntity data = new ResetPasswordHashEntity(user.PublicID, resetPasswordToken);
         *
         *      //insert the token in the database
         *      _resetPasswordHashRepository.Delete(user.PublicID);
         *      response.IsSuccess = _resetPasswordHashRepository.Create(data);
         *
         *      string link = string.Empty;
         *
         *      if (user.Role.ToLower() == UserRole.Agency.ToString().ToLower())
         *      {
         *          link = $@"https://portalnekretnine.com/reset-password/" + $"{resetPasswordToken}/";
         *      }
         *      else
         *      {
         *          link = $@"https://portalnekretnine.com/admin/reset-password/" + $"{resetPasswordToken}/";
         *      }
         *
         *
         *      //the email message text + link
         #if DEBUG
         *     // string message = CreateResetPasswordEmailBody(@"D:\PortalNekretnine\Beckend\portalnekretnine.services\EmailTemplates\resetPassword.html", link);
         #else
         *     // string message = CreateResetPasswordEmailBody(@"/var/www/portalnekretnine/EmailTemplates/resetPassword.html", link);
         #endif
         *
         *      //send the email
         *      //EmailSender.SendEmailAsync(model.Email, "portalnekretnine.com reset password url", message);
         *
         *      response.ResultObject = true;
         *  }
         *  catch (Exception ex)
         *  {
         *      response.IsSuccess = false;
         *      response.ErrorMessage = ex.Message;
         *      response.ResultObject = false;
         *
         *      _resetPasswordHashRepository.Delete(user.PublicID);
         *  }
         *
         *  return response;
         * }*/

        public ResponseMessage <bool> UpdatePassword(ResetPasswordRequest model)
        {
            ResponseMessage <bool> response = new ResponseMessage <bool>();

            try
            {
                //find the record using the resetPasswordToken
                ResetPasswordHashEntity data = _resetPasswordHashRepository.Find(model.ResetPasswordToken);

                //if no record was found using the token
                if (data == null)
                {
                    throw new Exception($"There has not been request for password reset on www.portalnekretnine.com");
                }

                //if record was found using the provided token
                //we check if it is still valid (token lives 5 minutes)
                DateTime now            = DateTime.Now;
                double   elipsedMinutes = now.Subtract(data.Date).TotalMinutes;

                if (elipsedMinutes > 100)
                {
                    //if token is expired we delete the record from the database
                    response.ResultObject = false;
                    _resetPasswordHashRepository.Delete(data.Uniq);
                    throw new Exception($"Reset token has expired!");
                }

                //if token is still active, then we update the database
                User user = _userRepository.FindByUniq(data.Uniq);
                user.Password = PasswordHasher.Create(model.Password, user.Email);
                _userRepository.Update(user);

                //after update delete the token data form DB
                _resetPasswordHashRepository.Delete(data.Uniq);

                response.ResultObject = true;
            }
            catch (Exception ex)
            {
                response.IsSuccess    = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
        public ResponseMessage <User> FindByCredencials(string email, string password)
        {
            ResponseMessage <User> response = new ResponseMessage <User>();

            try
            {
                response.ResponseObject = _userRepository.FindByCredencials(email, PasswordHasher.Create(password, email));
                response.IsSuccess      = true;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                response.IsSuccess    = false;
            }

            return(response);
        }
Beispiel #8
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            try
            {
                string fName    = txtFName.Text;
                string lName    = txtLName.Text;
                string username = txtUser.Text;
                string password = txtPassword.Text;
                PasswordHasher.Create(fName, lName, username, password);
                MessageBox.Show("Medarbejderen er nu oprettet", "Besked");
            }
            catch (FaultException <EmployeeNotCreatedException> exception)
            {
                MessageBox.Show(exception.Detail.Message, "Fejl");
            }

            CleanFields();
        }
        public ResponseMessage <User> Create(RegisterUserRequest data)
        {
            ResponseMessage <User> response = new ResponseMessage <User>();

            try
            {
                //check if the user exists
                bool exist = _userRepository.FindEmail(data.Email);

                //if exist throw exeption
                if (exist == true)
                {
                    throw new Exception($"{data.Email} already taken!");
                }

                User user = new User(data);
                user.Password           = PasswordHasher.Create(data.Password, data.Email);
                user.PublicID           = UniqKeyGenerator.Generate();
                user.Role               = UserRole.User.ToString();
                data.Role               = UserRole.User.ToString();
                response.ResponseObject = _userRepository.Create(user);

                //create the profile
                Profile profile = new Profile(user.PublicID, data);
                response.IsSuccess = _profileRepository.Create(profile);

                //SendWelcomeEmail(user.Email);
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                response.IsSuccess    = false;
            }

            return(response);
        }
        public MappingProfile()
        {
            CreateMap <UnitOrganisasiCreate, UnitOrganisasi>();

            CreateMap <UserCreate, User>()
            .ForMember(d => d.Password, opt => opt.MapFrom(s => PasswordHasher.Create(s.Password)))
            .ForMember(d => d.Username, opt => opt.MapFrom(s => s.Username.ToLower()));

            CreateMap <UserUpdate, User>()
            .ForMember(d => d.Password, opt => opt.MapFrom(s => PasswordHasher.Create(s.NewPassword)));
            CreateMap <User, UserDto>();

            CreateMap <GolonganCreate, Golongan>();
            CreateMap <GolonganUpdate, Golongan>();

            CreateMap <MenuCreateCommand, Menu>();
            CreateMap <MenuUpdateCommand, Menu>();

            CreateMap <RoleCreate, Role>()
            .ForMember(d => d.Nama, opt => opt.MapFrom(s => s.Nama.ToLower()));
            CreateMap <RoleUpdate, Role>()
            .ForMember(d => d.Nama, opt => opt.MapFrom(s => s.Nama.ToLower()));

            CreateMap <UserRole, UserRoleDto>();
            CreateMap <UserRoleCreate, UserRole>();

            CreateMap <BankCreate, Bank>();
            CreateMap <BankUpdate, Bank>();

            CreateMap <BPKCreate, BPK>();
            CreateMap <BPKUpdate, BPK>();

            CreateMap <BENDCreate, BEND>();
            CreateMap <BENDUpdate, BEND>();

            CreateMap <DAFTUNITCreate, DAFTUNIT>();
            CreateMap <DAFTUNITUpdate, DAFTUNIT>();

            CreateMap <DAFTPHKCreate, DAFTPHK>();
            CreateMap <DAFTPHKUpdate, DAFTPHK>();

            CreateMap <KEGUNITCreate, KEGUNIT>();
            CreateMap <KEGUNITUpdate, KEGUNIT>();

            CreateMap <BPKDETRCreate, BPKDETR>();
            CreateMap <BPKDETRUpdate, BPKDETR>();

            CreateMap <BPKDETRDANACreate, BPKDETRDANA>();
            CreateMap <BPKDETRDANAUpdate, BPKDETRDANA>();

            CreateMap <MKegiatanCreate, MKegiatan>();
            CreateMap <MKegiatanUpdate, MKegiatan>();

            CreateMap <MPGRMCreate, MPGRM>();
            CreateMap <MPGRMUpdate, MPGRM>();

            CreateMap <PegawaiCreate, Pegawai>();
            CreateMap <PegawaiUpdate, Pegawai>();

            CreateMap <PGRMUNITCreate, PGRMUNIT>();
            CreateMap <PGRMUNITUpdate, PGRMUNIT>();

            CreateMap <MATANGRCreate, MATANGR>();
            CreateMap <MATANGRUpdate, MATANGR>();

            CreateMap <JBAYARCreate, JBAYAR>();
            CreateMap <JBAYARUpdate, JBAYAR>();

            CreateMap <JTRANSFERCreate, JTRANSFER>();
            CreateMap <JTRANSFERUpdate, JTRANSFER>();

            CreateMap <JDANACreate, JDANA>();
            CreateMap <JDANAUpdate, JDANA>();

            CreateMap <BeritaCreate, Berita>();
            CreateMap <BeritaUpdate, Berita>();

            CreateMap <BERITADETRCreate, BERITADETR>();
            CreateMap <BERITADETRUpdate, BERITADETR>();

            CreateMap <SP2DCreate, SP2D>();
            CreateMap <SP2DUpdate, SP2D>();

            CreateMap <SP2DBPKCreate, SP2DBPK>();
            CreateMap <SP2DBPKUpdate, SP2DBPK>();

            CreateMap <BPKSP2DCreate, BPKSP2D>();
            CreateMap <BPKSP2DUpdate, BPKSP2D>();

            CreateMap <DASKRCreate, DASKR>();
            CreateMap <DASKRUpdate, DASKR>();

            CreateMap <KontrakCreate, Kontrak>();
            CreateMap <KontrakUpdate, Kontrak>();

            CreateMap <SBDANARCreate, SBDANAR>();
            CreateMap <SBDANARUpdate, SBDANAR>();

            CreateMap <NPDCreate, NPD>();
            CreateMap <NPDUpdate, NPD>();

            CreateMap <NPDBPKCreate, NPDBPK>();
            CreateMap <NPDBPKUpdate, NPDBPK>();

            CreateMap <NPDSTSCreate, NPDSTS>();
            CreateMap <NPDSTSUpdate, NPDSTS>();

            CreateMap <NPDTBPLCreate, NPDTBPL>();
            CreateMap <NPDTBPLUpdate, NPDTBPL>();

            CreateMap <STATTRSCreate, STATTRS>();
            CreateMap <STATTRSUpdate, STATTRS>();

            CreateMap <JCAIRCreate, JCAIR>();
            CreateMap <JCAIRUpdate, JCAIR>();

            CreateMap <JKIRIMCreate, JKIRIM>();
            CreateMap <JKIRIMUpdate, JKIRIM>();

            CreateMap <JTRNLKASCreate, JTRNLKAS>();
            CreateMap <JTRNLKASUpdate, JTRNLKAS>();
        }