Beispiel #1
0
 //=====================================================================================
 public EmployeeLoggedInDTO LogOut()
 {
     this._inloggedEmployee = null;
     return(null);
 }
Beispiel #2
0
        //=====================================================================================
        public EmployeeLoggedInDTO LogIn(string aUsername, string aPassword)
        {
            //EmployeeLoggedInDTO terug = null;
            Console.WriteLine(aUsername + "   " + aPassword);

            EmpAppAccount gevonden = null;

            using (KfsContext ctx = new KfsContext(_constring))
            {
                gevonden = ctx.Set <EmpAppAccount>()
                           .Include(nameof(EmpAppAccount.Employee))
                           .FirstOrDefault(u => u.UserName == aUsername && u.Employee.IsActive);
            }

            if (gevonden != null)
            {
                Console.WriteLine("gebruiker gevonden");

                //kijken of pw overeen komt, zoniet null returnen
                string decryptydPw = encrypter.DecriptString(gevonden.Password, aUsername);
                if (decryptydPw != aPassword)
                {
                    _inloggedEmployee = null;
                    return(null);
                }

                //permissies inladen
                //------------------
                // de lsb is is de meest rechtse bit
                // de hsb is de meest linkse bit, maar deze gaat maar tot 63, van een UInt64 maakt
                // EF6 geen tabel, de msb kon ook niet geset worden, daarom hebben we nu maar 63
                // mogelijkheden ipv 64 :-(
                List <int> tmpPersmisses = new List <int>();
                for (int i = 0; i < 64; i++)
                {
                    if (((gevonden.AppPermissions >> i) & 1) != 0)
                    {
                        tmpPersmisses.Add(i + 1);
                    }
                }

                List <EmployeeLoggedInDTO.Permissions> tmptest = new List <EmployeeLoggedInDTO.Permissions>();
                for (int i = 0; i < 64; i++)
                {
                    if (((gevonden.AppPermissions >> i) & 1) != 0)
                    {
                        Console.WriteLine(i + 1);
                        if (Enum.IsDefined(typeof(EmployeeLoggedInDTO.Permissions), (i + 1)))
                        {
                            //tmptest.Add(i + 1);
                            tmptest.Add((EmployeeLoggedInDTO.Permissions)Enum.ToObject(typeof(EmployeeLoggedInDTO.Permissions), i + 1));
                        }
                    }
                }

                foreach (var item in tmptest)
                {
                    Console.WriteLine(item);
                }

                //bool IsBitSet(byte b, int pos)
                //{
                //    return ((b >> pos) & 1) != 0;
                //}

                foreach (var item in tmpPersmisses)
                {
                    Console.Write(item + ", ");
                }
                Console.WriteLine("========================" + tmpPersmisses.Count + "======" + gevonden.AppPermissions);

                _inloggedEmployee = new EmployeeLoggedInDTO()
                {
                    AppPermissions = tmptest,
                    FirstName      = gevonden.Employee.FirstName,
                    NameAddition   = gevonden.Employee.NameAddition,
                    LastName       = gevonden.Employee.LastName,
                    Id             = gevonden.Employee.Id,
                    UserName       = gevonden.UserName,
                };
            }
            else
            {
                _inloggedEmployee = null;
            }

            return(_inloggedEmployee);
        }