Ejemplo n.º 1
0
        public async Task ChangePasswordAsync(int id, string password)
        {
            var validateResult = PasswordValidator.Validate(password);

            if (validateResult != "OK")
            {
                throw new BadRequestException(validateResult);
            }

            var darbinieks = await _context.Darbinieki
                             .Where(d => d.Id == id)
                             .FirstOrDefaultAsync();

            if (darbinieks == null)
            {
                throw new BadRequestException($"Darbinieks ar Id={id} netika atrasts");
            }
            if (!string.IsNullOrEmpty(darbinieks.Lietotajvards))
            {
                if (!string.IsNullOrEmpty(darbinieks.Parole))
                {
                    if (password == PasswordValidator.Decrypt(darbinieks.Parole, _settings.EncryptionKey))
                    {
                        throw new BadRequestException("Parole nedrīkst būt tāda pati kā iepriekšējā");
                    }
                }
            }
            else
            {
                throw new BadRequestException("Darbiniekam nav lietotājvārda");
            }

            darbinieks.Parole = PasswordValidator.Encrypt(password, _settings.EncryptionKey);
            await _context.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <int> InsertDarbinieksAsync(Darbinieks darbinieks)
        {
            if (!string.IsNullOrEmpty(darbinieks.Lietotajvards))
            {
                //pārbaudam vai lietotājvārds jau eksistē
                var exist = await GetDarbinieksByUserNameAsync(darbinieks.Lietotajvards);

                if (exist != null)
                {
                    throw new BadRequestException($"Lietotājvārds {darbinieks.Lietotajvards} jau eksistē");
                }

                //pārbaudam vai e-pasta adrese jau eksistē
                if (!string.IsNullOrEmpty(darbinieks.Epasts))
                {
                    var user = await _context.Darbinieki.AsNoTracking()
                               .Where(d => d.Epasts == darbinieks.Epasts)
                               .FirstOrDefaultAsync();

                    if (user != null)
                    {
                        throw new BadRequestException("Šāda e-pasta adrese jau eksistē");
                    }
                }

                var validateResult = PasswordValidator.Validate(darbinieks.Parole);
                if (validateResult != "OK")
                {
                    throw new BadRequestException(validateResult);
                }

                darbinieks.Parole = PasswordValidator.Encrypt(darbinieks.Parole, _settings.EncryptionKey);
            }
            else
            {
                darbinieks.Aktivs         = false;
                darbinieks.Administrators = false;
            }

            _memoryCache.Remove("EMPLOYEES-LIST");

            darbinieks.Uznemumi = new List <UznemumaDarbinieks> {
                new UznemumaDarbinieks {
                    UznemumaId = darbinieks.Uznemums.Id
                }
            };

            await _context.Darbinieki.AddAsync(darbinieks);

            await _context.SaveChangesAsync();

            return(darbinieks.Id);
        }
Ejemplo n.º 3
0
        public async Task <Darbinieks> ValidateCredentialsAsync(string username, string password)
        {
            var pwd = PasswordValidator.Encrypt(password, _settings.EncryptionKey);

            var user = await _context.Darbinieki
                       .Where(d => d.Lietotajvards == username && d.Parole == pwd)
                       .FirstOrDefaultAsync();

            if (user != null)
            {
                user.RefreshToken = Guid.NewGuid().ToString();
                await _context.SaveChangesAsync();
            }

            return(user);
        }
Ejemplo n.º 4
0
        public async Task <int> UpdateDarbinieksAsync(Darbinieks darbinieks)
        {
            var needClearPassword = false;

            if (!string.IsNullOrEmpty(darbinieks.Lietotajvards))
            {
                //pārbaudam vai lietotājvārds jau eksistē - gadījumā ja tiek izmainīts
                var exist = await GetDarbinieksByUserNameAsync(darbinieks.Lietotajvards);

                if (exist != null && exist.Id != darbinieks.Id)
                {
                    throw new BadRequestException($"Lietotājvārds {darbinieks.Lietotajvards} jau eksistē");
                }
            }
            else
            {
                needClearPassword = true;
            }

            //pārbaudam vai e-pasta adrese jau eksistē
            if (!string.IsNullOrEmpty(darbinieks.Epasts))
            {
                var user = await _context.Darbinieki.Where(d => d.Id != darbinieks.Id && d.Epasts == darbinieks.Epasts).FirstOrDefaultAsync();

                if (user != null)
                {
                    throw new BadRequestException("Šāda e-pasta adrese jau eksistē");
                }
            }

            var oldDarbinieks = await _context.Darbinieki
                                .Where(d => d.Id == darbinieks.Id)
                                .FirstOrDefaultAsync();

            if (oldDarbinieks == null)
            {
                throw new BadRequestException($"Darbinieks ar Id={darbinieks.Id} netika atrasts");
            }

            oldDarbinieks.PilnsVards     = darbinieks.PilnsVards;
            oldDarbinieks.Epasts         = darbinieks.Epasts;
            oldDarbinieks.Talrunis       = darbinieks.Talrunis;
            oldDarbinieks.Aktivs         = darbinieks.Aktivs;
            oldDarbinieks.Administrators = darbinieks.Administrators;
            oldDarbinieks.Mehanikis      = darbinieks.Mehanikis;

            // ja vecajos datos nav lietotājvārda, bet jaunajos ir - nepieciešams saglabāt arī paroli
            if (string.IsNullOrEmpty(oldDarbinieks.Lietotajvards) && !string.IsNullOrEmpty(darbinieks.Lietotajvards))
            {
                oldDarbinieks.Parole = PasswordValidator.Encrypt(darbinieks.Parole, _settings.EncryptionKey);
            }
            else
            {
                // ja nav lietotājvārda - dzēšam arī paroli
                if (needClearPassword)
                {
                    oldDarbinieks.Parole         = null;
                    oldDarbinieks.Aktivs         = false;
                    oldDarbinieks.Administrators = false;
                }
            }

            oldDarbinieks.Lietotajvards = darbinieks.Lietotajvards;

            return(await _context.SaveChangesAsync());
        }