Ejemplo n.º 1
0
        public static void RemoveAccess(this DbSet <GrantedAccess> accesses, GrantedUser user, Device device)
        {
            var access = accesses.FirstOrDefault(ga => ga.GrantedUserId == user.GrantedUserId && ga.DeviceId == device.DeviceId);

            if (access != null)
            {
                accesses.Remove(access);
            }
        }
        /// <summary>
        /// Add a new user to the database. Doesn't check if a user already exists with the same login.
        /// </summary>
        /// <param name="grantedUsers">Self-instance (extension method).</param>
        /// <param name="login">New user's login</param>
        /// <param name="password">New user's password</param>
        /// <param name="badgeNumber">New user's badge number</param>
        /// <param name="userRank">New user's rank</param>
        /// <returns>Just created/inserted GrantedUser instance.</returns>
        public static GrantedUser AddNewUser(this DbSet <GrantedUser> grantedUsers, string login, string password, string badgeNumber, UserRank userRank, string firstname, string lastname)
        {
            var newUser = new GrantedUser
            {
                Login       = login,
                Password    = PasswordHashing.Sha256Of(password),
                BadgeNumber = badgeNumber,
                UserRank    = userRank,
                FirstName   = firstname,
                LastName    = lastname
            };

            return(grantedUsers.Add(newUser));
        }
        /// <summary>
        /// Tries to find a GrantedUser matching both given login & password.
        /// </summary>
        /// <param name="grantedUsers">Self-instance (extension method).</param>
        /// <param name="login">Given login (most of the time provided by User).</param>
        /// <param name="password">Given password (most of the time provided by User).</param>
        /// <returns>True if a user has been found, false otherwise.</returns>
        public static bool IsPasswordValid(this DbSet <GrantedUser> grantedUsers, string login, string password)
        {
            GrantedUser test = grantedUsers.SingleOrDefault(gu => gu.Login == login && gu.Password == password);

            return(test != null);
        }
        protected override void Seed(SmartDrawerDatabaseContext context)
        {
            //Seed Access Type
            IList <AccessType> defaultAccessTypes = new List <AccessType>();

            defaultAccessTypes.Add(new AccessType()
            {
                AccessTypeId = 1, Type = "MANUAL"
            });
            defaultAccessTypes.Add(new AccessType()
            {
                AccessTypeId = 2, Type = "BADGE"
            });
            defaultAccessTypes.Add(new AccessType()
            {
                AccessTypeId = 3, Type = "FINGERPRINT"
            });
            foreach (AccessType at in defaultAccessTypes)
            {
                context.AccessTypes.Add(at);
            }

            //Seed Column  for not null at Start
            IList <Column> DefaultColumns = new List <Column>();

            DefaultColumns.Add(new Column()
            {
                ColumnId = 1, ColumnIndex = 0, ColumnName = "Tag UID"
            });
            //DefaultColumns.Add(new Column() { ColumnId = 2, ColumnIndex = 1, ColumnName = "LOT ID" });
            foreach (Column c in DefaultColumns)
            {
                context.Columns.Add(c);
            }

            //Seed Device Type
            IList <DeviceType> defaultDeviceTypes = new List <DeviceType>();

            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 1, HardwareIndex = 0, Type = "DT_UNKNOWN"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 2, HardwareIndex = 1, Type = "DT_STR"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 3, HardwareIndex = 2, Type = "DT_JSC"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 4, HardwareIndex = 3, Type = "DT_SMC"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 5, HardwareIndex = 4, Type = "DT_SBX"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 6, HardwareIndex = 5, Type = "DT_STR"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 7, HardwareIndex = 6, Type = "DT_SBR"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 8, HardwareIndex = 7, Type = "DT_SAS"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 9, HardwareIndex = 8, Type = "DT_SFR"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 10, HardwareIndex = 9, Type = "DT_MSR"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 11, HardwareIndex = 10, Type = "DT_SBF"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 12, HardwareIndex = 11, Type = "DT_PAD"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 13, HardwareIndex = 12, Type = "DT_CAT"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 14, HardwareIndex = 13, Type = "DT_MCS"
            });
            defaultDeviceTypes.Add(new DeviceType()
            {
                DeviceTypeId = 15, HardwareIndex = 14, Type = "DT_WAL"
            });
            foreach (DeviceType dt in defaultDeviceTypes)
            {
                context.DeviceTypes.Add(dt);
            }

            //Seed GrantType
            IList <GrantType> defaultGrantTypes = new List <GrantType>();

            defaultGrantTypes.Add(new GrantType()
            {
                GrantTypeId = 1, Type = "NONE"
            });
            defaultGrantTypes.Add(new GrantType()
            {
                GrantTypeId = 2, Type = "SLAVE"
            });
            defaultGrantTypes.Add(new GrantType()
            {
                GrantTypeId = 3, Type = "MASTER"
            });
            defaultGrantTypes.Add(new GrantType()
            {
                GrantTypeId = 4, Type = "ALL"
            });
            foreach (GrantType gt in defaultGrantTypes)
            {
                context.GrantTypes.Add(gt);
            }

            // Seed User Rank
            IList <UserRank> defaultUserRanks = new List <UserRank>();

            defaultUserRanks.Add(new UserRank()
            {
                UserRankId = 1, Rank = "ADMINISTRATOR"
            });
            defaultUserRanks.Add(new UserRank()
            {
                UserRankId = 2, Rank = "SUPER_USER"
            });
            defaultUserRanks.Add(new UserRank()
            {
                UserRankId = 3, Rank = "USER"
            });
            foreach (UserRank ur in defaultUserRanks)
            {
                context.UserRanks.Add(ur);
            }

            //seed Admin User
            GrantedUser adminUser = new GrantedUser()
            {
                GrantedUserId = 1, ServerGrantedUserId = -1, Login = "******", Password = PasswordHashing.Sha256Of("Rfid123456"), UserRankId = 1, UpdateAt = DateTime.Now
            };

            context.GrantedUsers.Add(adminUser);

            //seed device
            //Device newDev = new Device() { DeviceTypeId = 15, DeviceName = "Wall Test Lab Paris", DeviceSerial = "Wall-V2-0013", RfidSerial = "14100258", UpdateAt = DateTime.Now };
            //context.Devices.Add(newDev);

            base.Seed(context);
        }
Ejemplo n.º 5
0
        public static GrantedAccess AddOrUpdateAccess(this DbSet <GrantedAccess> accesses, GrantedUser user,
                                                      Device device, GrantType type)
        {
            var access = accesses.FirstOrDefault(ga => ga.GrantedUserId == user.GrantedUserId && ga.DeviceId == device.DeviceId);

            if (access == null)
            {
                access = new GrantedAccess
                {
                    DeviceId      = device.DeviceId,
                    GrantedUserId = user.GrantedUserId,
                    GrantTypeId   = type.GrantTypeId
                };

                return(accesses.Add(access));
            }

            access.DeviceId      = device.DeviceId;
            access.GrantedUserId = user.GrantedUserId;
            access.GrantTypeId   = type.GrantTypeId;

            return(access);
        }
Ejemplo n.º 6
0
 public static List <GrantedAccess> GetByUser(this DbSet <GrantedAccess> accesses, GrantedUser user)
 {
     return(accesses.Where(ga => ga.GrantedUserId == user.GrantedUserId).ToList());
 }
Ejemplo n.º 7
0
 public static bool HasAccess(this DbSet <GrantedAccess> accesses, GrantedUser user, Device device)
 {
     return(accesses.SingleOrDefault(ga => ga.GrantedUserId == user.GrantedUserId && ga.DeviceId == device.DeviceId) != null);
 }