예제 #1
0
 // constructor with parameters
 public Staff(int StaffID, string FullName, string PasswordHash, Privelege privelege)
 {
     this.StaffID      = StaffID;
     this.FullName     = FullName;
     this.PasswordHash = PasswordHash;
     this.privelege    = privelege;
 }
예제 #2
0
        /// <summary>
        /// Add a staff record to the database.
        /// </summary>
        /// <param name="staff">Staff object.</param>
        public void addStaff(IStaff staff)
        {
            // StaffID in the database is PK and AI
            string queryAddStaff = "INSERT INTO Staff (FullName, PasswordHash, Privelege) " +
                                   "VALUES (@name, @password, @privelege);";

            using (SqlConnection conn = new SqlConnection(this.connString))
            {
                // prepare the command
                SqlCommand cmd = new SqlCommand(queryAddStaff, conn);

                // parameterise
                SqlParameter nameParam = new SqlParameter();
                nameParam.ParameterName = "@name";
                nameParam.Value         = staff.fullName;
                cmd.Parameters.Add(nameParam);

                SqlParameter passParam = new SqlParameter();
                passParam.ParameterName = "@password";
                passParam.Value         = staff.passwordHash;
                cmd.Parameters.Add(passParam);

                SqlParameter privParam = new SqlParameter();
                privParam.ParameterName = "@privelege";
                Privelege privelege = staff.privelege;
                switch (privelege)
                {
                case Privelege.Admin:
                    privParam.Value = "Admin";

                    break;

                case Privelege.Normal:
                    privParam.Value = "Normal";

                    break;

                default:
                    // this shouldn't happen
                    throw new Exception("Invalid staff data");
                }
                cmd.Parameters.Add(privParam);

                // try a connection
                conn.Open();

                // execute the query
                cmd.ExecuteNonQuery();
            }

            return;
        }
예제 #3
0
        public static string PrivelegeToText(Privelege privelege)
        {
            switch (privelege)
            {
            case Privelege.All:
                return(Properties.Resources.PermissionAll);

            case Privelege.RedactRole:
                return(Properties.Resources.PermissionRedactRole);

            case Privelege.RedactUser:
                return(Properties.Resources.PermissionRedactUser);

            case Privelege.RedactButton:
                return(Properties.Resources.PermissionRedactButton);

            case Privelege.RedactTva:
                return(Properties.Resources.PermissionRedactVat);

            case Privelege.RedactGroupsProduct:
                return(Properties.Resources.PermissionRedactGroupsProduct);

            case Privelege.RedactSyncSettings:
                return(Properties.Resources.PermissionRedactSync);

            case Privelege.DeleteProductFromCheck:
                return(Properties.Resources.PermissionDeleteProductFromCheck);

            case Privelege.WriteOff:
                return(Properties.Resources.PermissionWriteOff);

            case Privelege.RedactStockCount:
                return(Properties.Resources.PermissionRedactStockCount);

            default:
                throw new ArgumentOutOfRangeException(nameof(privelege), privelege, null);
            }
        }
예제 #4
0
 public bool IsPermiss(Privelege privelege)
 {
     return(Privelegies.Contains(Privelege.All) || Privelegies.Contains(privelege));
 }
예제 #5
0
 public static bool PermiseByPrivelege(Privelege privelege)
 {
     return(LoginedUser.Role.Privelegies.Contains(privelege) ||
            LoginedUser.Role.Privelegies.Contains(Privelege.All));
 }