Esempio n. 1
0
        public virtual ReturnInfo <IList <FunctionInfo> > QueryUserOwnFunctionsByMenuCode([DisplayName2("用户ID"), Id] int userId, [DisplayName2("菜单编码"), Required] string menuCode, string connectionId = null)
        {
            if ("Role".Equals(AppConfig["User:PermissionBenchmark"]))
            {
                return(ExecReturnFuncAndConnectionId <IList <FunctionInfo> >((reInfo, connId) =>
                {
                    // 查找该用户所属角色
                    ReturnInfo <IList <RoleInfo> > reRoleInfo = UserRoleService.OwnRolesByUserId(userId, connId);
                    if (reRoleInfo.Failure())
                    {
                        reInfo.FromBasic(reRoleInfo);
                        return null;
                    }
                    if (reRoleInfo.Data.IsNullOrCount0())
                    {
                        return null;
                    }
                    int[] roleIds = new int[reRoleInfo.Data.Count];
                    for (var i = 0; i < roleIds.Length; i++)
                    {
                        roleIds[i] = reRoleInfo.Data[i].Id;
                    }

                    return RoleMenuFunctionPersistence.SelectFunctionsByMenuCodeAndRoleIds(menuCode, roleIds, connId);
                }, null, connectionId, AccessMode.SLAVE));
            }
            else
            {
                return(ExecReturnFunc <IList <FunctionInfo> >((reInfo) =>
                {
                    return UserMenuFunctionPersistence.SelectFunctionsByMenuCodeAndUserId(menuCode, userId, connectionId);
                }));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 根据用户ID、菜单编码和功能编码集合判断用户是否有权限
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="menuCode">菜单编码</param>
        /// <param name="functionCodes">功能编码集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>返回信息</returns>
        public virtual ReturnInfo <bool> IsPermission([DisplayName2("用户ID"), Id] int userId, [DisplayName2("菜单编码"), Required] string menuCode,
                                                      [DisplayName2("功能编码集合"), ArrayNotEmpty] string[] functionCodes, string connectionId = null)
        {
            if ("Role".Equals(AppConfig["User:PermissionBenchmark"]))
            {
                return(ExecReturnFuncAndConnectionId <bool>((reInfo, connId) =>
                {
                    // 查找该用户所属角色
                    ReturnInfo <IList <RoleInfo> > reRoleInfo = UserRoleService.OwnRolesByUserId(userId, connId);
                    if (reRoleInfo.Failure())
                    {
                        reInfo.FromBasic(reRoleInfo);
                        return false;
                    }
                    if (reRoleInfo.Data.IsNullOrCount0())
                    {
                        return false;
                    }
                    int[] roleIds = new int[reRoleInfo.Data.Count];
                    for (var i = 0; i < roleIds.Length; i++)
                    {
                        roleIds[i] = reRoleInfo.Data[i].Id;
                    }

                    if (RoleMenuFunctionPersistence.CountByMenuCodeAndFunctionCodesAndRoleIds(menuCode, functionCodes, roleIds, connId) > 0)
                    {
                        return true;
                    }
                    else
                    {
                        reInfo.SetCodeMsg(ErrCodeDefine.NOT_PERMISSION, "Sorry,您没有访问此功能权限!");
                        return false;
                    }
                }, null, connectionId, AccessMode.SLAVE));
            }
            else
            {
                return(ExecReturnFunc <bool>((reInfo) =>
                {
                    if (UserMenuFunctionPersistence.CountByMenuCodeAndFunctionCodesAndUserId(menuCode, functionCodes, userId, connectionId) > 0)
                    {
                        return true;
                    }
                    else
                    {
                        reInfo.SetCodeMsg(ErrCodeDefine.NOT_PERMISSION, "Sorry,您没有访问此功能权限!");
                        return false;
                    }
                }));
            }
        }