コード例 #1
0
        /// <summary>
        /// 验证该用户是否拥有该模块功能权限
        /// </summary>
        /// <param name="userName">用户账号</param>
        /// <param name="functionId">模块id</param>
        /// <returns>true=是 false=否</returns>
        private bool HasRightIdCore(string userName, string functionId)
        {
            AppUser     user = UserManager.GetByName(userName);
            AppFunction func = FunctionManager.GetById(functionId);

            /*
             * 返回值在原有基础上添加了用户与模块功能的判断 by_zjf
             *       (user.FunctionIds.Count() == 0  || user.FunctionIds.Contains(functionId))
             * 判断规则优先顺序
             *      1.已设置用户与模块功能权限,验证是否存在该模块功能.
             *      2.未设置用户与模块功能权限,根据模块关联角色的关系进行验证.
             */
            return(user != null &&
                   (func == null ||
                    func.AuthType == JAuthType.AllUsers ||
                    func.AuthType == JAuthType.EveryOne ||
                    user.FunctionIds.Contains(functionId) ||
                    user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId))
                   ) &&
                   (user.IsDefaultRole ||
                    func.AuthType == JAuthType.AllUsers ||
                    func.AuthType == JAuthType.EveryOne ||
                    user.FunctionIds.Contains(functionId)
                   ));
        }
コード例 #2
0
        /// <summary>
        /// 验证该用户是否拥有该模块功能权限
        /// </summary>
        /// <param name="userName">用户账号</param>
        /// <param name="functionId">模块id</param>
        /// <returns>true=是 false=否</returns>
        private bool HasRightIdCore(string userName, string functionId)
        {
            AppFunction func = FunctionManager.GetById(functionId);

            if (func == null || func.AuthType == JAuthType.EveryOne)
            {
                return(true);
            }
            var user = AppManager.Instance.UserManager.GetByName(userName);

            if (user == null)
            {
                return(false);
            }

            if (func.AuthType == JAuthType.AllUsers)
            {
                return(true);
            }

            if (!user.IsDefaultRole && user.FunctionIds.Contains(functionId))
            {
                return(true);
            }

            if (user.IsDefaultRole && user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId)))
            {
                return(true);
            }

            return(false);

            /*
             * 返回值在原有基础上添加了用户与模块功能的判断 by_zjf
             *       (user.FunctionIds.Count() == 0  || user.FunctionIds.Contains(functionId))
             * 判断规则优先顺序
             *      1.已设置用户与模块功能权限,验证是否存在该模块功能.
             *      2.未设置用户与模块功能权限,根据模块关联角色的关系进行验证.
             */

            //return user != null
            //        && (func == null
            //        || func.AuthType == JAuthType.AllUsers
            //        || func.AuthType == JAuthType.EveryOne
            //        || user.FunctionIds.Contains(functionId)
            //        || user.RoleIds.Any(rId => RoleManager.GetById(rId).FunctionIds.Contains(functionId))
            //    )
            //    && (user.IsDefaultRole
            //    || func.AuthType == JAuthType.AllUsers
            //    || func.AuthType == JAuthType.EveryOne
            //    || user.FunctionIds.Contains(functionId)
            //        );
        }