/// <summary>
        /// 权限差选
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="broker"></param>
        /// <param name="sql"></param>
        /// <param name="paramList"></param>
        /// <returns></returns>
        public static IList <T> FilteredRetrieveMultiple <T>(this IPersistBroker broker, string sql, Dictionary <string, object> paramList = null) where T : BaseEntity, new()
        {
            var sysEntity = EntityCache.GetEntity(new T().EntityName);

            AssertUtil.CheckBoolean <InvalidCredentialException>(!AuthAccess.CheckReadAccess(sysEntity.Id), $"用户没有实体[{sysEntity.name}]的查询权限", "451FC4BA-46B2-4838-B8D0-69617DFCAF39");
            return(broker.RetrieveMultiple <T>(sql, paramList));
        }
Esempio n. 2
0
        /// <summary>
        /// 获取角色权限
        /// </summary>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public IEnumerable <sys_role_privilege> GetRolePrivilege()
        {
            var key = $"{PRIVILEGE_PREFIX}_{RoleName}";

            return(MemoryCacheUtil.GetOrAddCacheItem(key, () =>
            {
                var sql = @"
SELECT * FROM sys_role_privilege
WHERE sys_roleidName = @name
";
                var dataList = Broker.RetrieveMultiple <sys_role_privilege>(sql, new Dictionary <string, object>()
                {
                    { "@name", Role.GetDescription() }
                });
                return dataList;
            }, DateTime.Now.AddHours(12)));
        }
Esempio n. 3
0
        /// <summary>
        /// 获取缺失实体权限
        /// </summary>
        /// <returns></returns>
        protected IEnumerable <sys_entity> GetMissingEntityPrivileges(IPersistBroker broker)
        {
            var role      = GetSysRole();
            var paramList = new Dictionary <string, object>()
            {
                { "@id", role.Id }
            };
            var sql = @"
SELECT * FROM sys_entity
WHERE sys_entityid NOT IN (
	SELECT objectid FROM sys_role_privilege
	WHERE object_type = 'sys_entity' AND sys_roleid = @id
)
";

            return(broker.RetrieveMultiple <sys_entity>(sql, paramList));
        }