Ejemplo n.º 1
0
        public bool _CheckPerHARDDISK(RES_PERMISSION_TYPE per_type, long HD_ID)
        {
            if (this.IsPermission == false) return true;
            if (HD_ID <= 0) return false;
            string storeName = "";
            switch (per_type)
            {
                case RES_PERMISSION_TYPE.CREATE:
                    storeName = "CHECK_HARDDISK_ISCREATE";
                    break;
                case RES_PERMISSION_TYPE.DELETE:
                    storeName = "CHECK_HARDDISK_ISDELETE";
                    break;
                case RES_PERMISSION_TYPE.READ:
                    storeName = "CHECK_HARDDISK_ISREAD";
                    break;
                case RES_PERMISSION_TYPE.UPDATE:
                    storeName = "CHECK_HARDDISK_ISUPDATE";
                    break;
                default:
                    storeName = "CHECK_HARDDISK_ISCREATE";
                    break;
            }

            string sql = string.Format(@"select is_per from {0}({1},{2})", storeName, FrameworkParams.currentUser.employee_id, HD_ID);
            FWDBService db = HelpDB.getDBService();
            DbCommand cmd = db.GetSQLStringCommand(sql);
            object isPer = db.ExecuteScalar(cmd);
            if (isPer != null)
                return isPer.ToString() == "Y";
            return false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng chỉ định có quyền.
        /// </summary>
        /// <param name="UserID">ID người dùng</param>
        /// <param name="per_type">Loại quyền</param>
        /// <returns></returns>
        public string _getPermissionResStrIDs(long Employee_ID, RES_PERMISSION_TYPE per_type)
        {
            try
            {
                if (this.DMTableName_Res == "")
                {
                    throw new Exception("Hàm này chỉ dành cho phân quyền có chứa tài nguyên!");
                }
                string deparmentIDs = this.GetDepartmentIDs(Employee_ID);
                string sql = "";

                if (_HasResGroup)
                {
                    sql = string.Format(@" select list(resource_id,',') from (select id resource_id
                        from {0} res
                        where res.{1} in( select per.resource_id
                                                        from per_resource per
                                                        where per.resource_type={2} and per.is_group='Y' and per.{3}='Y'
                                                        and (per.employee_id= {4} or per.department_id in ({5})))
                        union

                        select per.resource_id
                        from per_resource per
                        where per.resource_type={2} and per.is_group='N' and per.{3}='Y'
                        and (per.employee_id= {4} or per.department_id in ({5})))",
                        this._DMTableName_Res, this._RefFieldNameDM_Res_ResGroup, this._Resource_Type_ID, GetFieldPermission(per_type),
                        Employee_ID, deparmentIDs
                        );
                }
                else
                {
                    sql = string.Format(@"select list(distinct per.resource_id,',')
                                        from per_resource per
                                        where per.resource_type={0} and per.is_group='N' and per.{1}='Y'
                                        and (per.employee_id= {2} or per.department_id in ({3}))",
                                         _Resource_Type_ID, GetFieldPermission(per_type), Employee_ID, deparmentIDs);
                }

                FWDBService dbRes = HelpDB.getDBService();
                DbCommand cmdRes = dbRes.GetSQLStringCommand(sql);
                object resIDs = dbRes.ExecuteScalar(cmdRes);
                if (resIDs != null)
                    return resIDs.ToString();
                return "";
            }
            catch
            {
                return "";
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng hiện hành có quyền.
 /// </summary>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public string _getPermissionResStrIDs(RES_PERMISSION_TYPE per_type)
 {
     switch (per_type)
     {
         case RES_PERMISSION_TYPE.CREATE:
             return _PerRes_CREATE_StrIds;
         case RES_PERMISSION_TYPE.READ:
             return _PerRes_READ_StrIds;
         case RES_PERMISSION_TYPE.UPDATE:
             return _PerRes_UPDATE_StrIds;
         case RES_PERMISSION_TYPE.DELETE:
             return _PerRes_DELETE_StrIds;
         default:
             return _PerRes_READ_StrIds;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Trả về danh sách tài nguyên theo ID mà người dùng chỉ định có quyền.
        /// </summary>
        /// <param name="UserID">ID người dùng</param>
        /// <param name="per_type">Loại quyền</param>
        /// <returns></returns>
        public long[] _getPermissionResIDs(long Employee_ID, RES_PERMISSION_TYPE per_type)
        {
            try
            {
                string strIds = _getPermissionResStrIDs(Employee_ID, per_type);
                if (strIds == "") return null;
                return Array.ConvertAll<string, long>(strIds.Split(','), HelpNumber.ParseInt64);

            }
            catch
            {
                return null;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Trả về chuỗi danh sách nhóm tài nguyên theo ID mà người dùng chỉ định có quyền.
        /// </summary>
        /// <param name="UserID">ID người dùng</param>
        /// <param name="per_type">Loại quyền</param>
        /// <returns></returns>
        public string _getPermissionResGroupStrIDs(long Employee_ID, RES_PERMISSION_TYPE per_type)
        {
            if (_HasResGroup == false)
                throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên");
            try
            {
                string deparmentIDs = this.GetDepartmentIDs(Employee_ID);
                string sql = string.Format(@"select list(distinct per.resource_id,',')
                                        from per_resource per
                                        where per.resource_type={0} and per.is_group='Y' and per.{1}='Y'
                                        and (per.employee_id= {2} or per.department_id in ({3}))",
                                          _Resource_Type_ID, GetFieldPermission(per_type), Employee_ID, deparmentIDs);

                FWDBService dbResGroup = HelpDB.getDBService();
                DbCommand cmdResGroup = dbResGroup.GetSQLStringCommand(sql);
                object resGroupIDs = dbResGroup.ExecuteScalar(cmdResGroup);
                if (resGroupIDs != null)
                    return resGroupIDs.ToString();
                return "";
            }
            catch
            {
                return "";
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Trả về chuỗi danh sách nhóm tài nguyên theo ID mà người dùng hiện hành có quyền.
 /// </summary>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public string _getPermissionResGroupStrIDs(RES_PERMISSION_TYPE per_type)
 {
     if (_HasResGroup == false)
         throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên");
     switch (per_type)
     {
         case RES_PERMISSION_TYPE.CREATE:
             return _PerResGroup_CREATE_StrIds;
         case RES_PERMISSION_TYPE.READ:
             return _PerResGroup_READ_StrIds;
         case RES_PERMISSION_TYPE.UPDATE:
             return _PerResGroup_UPDATE_StrIds;
         case RES_PERMISSION_TYPE.DELETE:
             return _PerResGroup_DELETE_StrIds;
         default:
             return _PerResGroup_READ_StrIds;
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Trả về danh sách nhóm tài nguyên theo ID mà người dùng chỉ định có quyền.
 /// </summary>
 /// <param name="UserID">ID người dùng</param>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public long[] _getPermissionResGroupIDs(long Employee_ID, RES_PERMISSION_TYPE per_type)
 {
     if (_HasResGroup == false)
         throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên");
     try
     {
         string strIds = _getPermissionResGroupStrIDs(Employee_ID, per_type);
         if (strIds == "") return null;
         return Array.ConvertAll<string, long>(strIds.Split(','), HelpNumber.ParseInt64);
     }
     catch
     {
         return null;
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Kiểm tra người dùng chỉ định có quyền trên 1 nhóm tài nguyên cụ thể hay không.
 /// </summary>
 /// <param name="UserID">ID người dùng</param>
 /// <param name="ResGroupID">ID nhóm tài nguyên</param>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public bool _checkPermissionResGroup(long Employee_ID, long ResGroupID, RES_PERMISSION_TYPE per_type)
 {
     if (_HasResGroup == false)
         throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên");
     return this._checkPermissionResGroup(Employee_ID, ResGroupID, null, per_type);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Kiểm tra người dùng hiện hành có quyền trên 1 nhóm tài nguyên cụ thể hay không.
        /// </summary>
        /// <param name="ResGroupID">ID nhóm tài nguyên</param>
        /// <param name="per_type">Loại quyền</param>
        /// <returns></returns>
        public bool _checkPermissionResGroup(long ResGroupID, RES_PERMISSION_TYPE per_type)
        {
            if (_HasResGroup == false)
                throw new Exception("Hàm này chỉ dành cho phân quyền dạng nhóm tài nguyên và tài nguyên");
            if (isPermission == false) return true;
            switch (per_type)
            {
                case RES_PERMISSION_TYPE.CREATE:
                    return ExistLong(this._PerResGroup_CREATE_Ids, ResGroupID);
                case RES_PERMISSION_TYPE.DELETE:
                    return ExistLong(this._PerResGroup_DELETE_Ids, ResGroupID);
                case RES_PERMISSION_TYPE.READ:
                    return ExistLong(this._PerResGroup_READ_Ids, ResGroupID);
                case RES_PERMISSION_TYPE.UPDATE:
                    return ExistLong(this._PerResGroup_UPDATE_Ids, ResGroupID);

            }
            return false;
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Kiểm tra người dùng chỉ định có quyền trên 1 tài nguyên cụ thể hay không.
        /// </summary>
        /// <param name="UserID">ID người dùng</param>
        /// <param name="ResID">ID tài nguyên</param>
        /// <param name="per_type">Loại quyền</param>
        /// <returns></returns>
        public bool _checkPermissionRes(long Employee_ID, long ResID, RES_PERMISSION_TYPE per_type)
        {
            try
            {
                if (this.DMTableName_Res == "")
                {
                    throw new Exception("Hàm này chỉ dành cho phân quyền có chứa tài nguyên!");
                }
                string deparmentIDs = this.GetDepartmentIDs(Employee_ID);
                string sql = string.Format(@"select per.id
                    from per_resource per
                    where per.resource_type={0} and per.resource_id={1} and per.is_group='N' and per.{2}='Y'
                    and (per.employee_id= {3} or per.department_id in ({4}))",
                       this._Resource_Type_ID, ResID, GetFieldPermission(per_type),
                       Employee_ID, deparmentIDs);

                DataSet ds = HelpDB.getDBService().LoadDataSet(sql);
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    return true;
                else if (_HasResGroup && _checkPermissionResGroup(Employee_ID, GetResGroupID(ResID), deparmentIDs, per_type))
                    return true;
                return false;
            }
            catch
            {
                return false;
            }
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Kiểm tra người dùng hiện hành có quyền trên 1 tài nguyên cụ thể hay không.
 /// </summary>
 /// <param name="ResID">ID tài nguyên</param>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>            
 public bool _checkPermissionRes(long ResID, RES_PERMISSION_TYPE per_type)
 {
     if (isPermission == false) return true;
     switch (per_type)
     {
         case RES_PERMISSION_TYPE.CREATE:
             return ExistLong(this._PerRes_CREATE_Ids, ResID);
         case RES_PERMISSION_TYPE.DELETE:
             return ExistLong(this._PerRes_DELETE_Ids, ResID);
         case RES_PERMISSION_TYPE.READ:
             return ExistLong(this._PerRes_READ_Ids, ResID);
         case RES_PERMISSION_TYPE.UPDATE:
             return ExistLong(this._PerRes_UPDATE_Ids, ResID);
     }
     return false;
 }
Ejemplo n.º 12
0
 private string GetFieldPermission(RES_PERMISSION_TYPE per_type)
 {
     switch (per_type)
     {
         case RES_PERMISSION_TYPE.CREATE:
             return "ISCREATE_BIT";
         case RES_PERMISSION_TYPE.READ:
             return "ISREAD_BIT";
         case RES_PERMISSION_TYPE.UPDATE:
             return "ISUPDATE_BIT";
         case RES_PERMISSION_TYPE.DELETE:
             return "ISDELETE_BIT";
         default:
             return "ISREAD_BIT";
     }
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Kiểm tra người dùng chỉ định có quyền trên 1 nhóm tài nguyên cụ thể hay không.
 /// </summary>
 /// <param name="UserID">ID người dùng</param>
 /// <param name="ResGroupID">ID nhóm tài nguyên</param>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public static bool CheckPermissionResGroup(long ResourceTypeID, long Employee_ID, long ResGroupID, RES_PERMISSION_TYPE per_type)
 {
     DataPermission data = GetDataPermission(ResourceTypeID);
     return data._checkPermissionResGroup(Employee_ID, ResGroupID, per_type);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Trả về chuỗi danh sách tài nguyên theo ID mà người dùng chỉ định có quyền.
 /// </summary>
 /// <param name="UserID">ID người dùng</param>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public string GetPermissionResStrIDs(long ResourceTypeID, long Employee_ID, RES_PERMISSION_TYPE per_type)
 {
     DataPermission data = GetDataPermission(ResourceTypeID);
     return data._getPermissionResStrIDs(Employee_ID, per_type);
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Trả về danh sách tài nguyên theo ID mà người dùng hiện hành có quyền.
 /// </summary>
 /// <param name="per_type">Loại quyền</param>
 /// <returns></returns>
 public static long[] GetPermissionResIDs(long ResourceTypeID, RES_PERMISSION_TYPE per_type)
 {
     DataPermission data = GetDataPermission(ResourceTypeID);
     return data._getPermissionResIDs(per_type);
 }