using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using MySql.Data.MySqlClient; namespace FangYar.OracleDAL { /// /// 权限(Oracle数据库实现) /// public class Authority : FangYar.IDAL.IAuthority { /// /// 判断当前用户是否有权限 /// /// 菜单标识码 /// 按钮标识码 /// 用户主键 public bool IfAuthority(string menuCode, string buttonCode, int userId) { StringBuilder sb = new StringBuilder(); sb.Append("select count(*) from tbUser u"); sb.Append(" join tbUserRole ur on u.Id=ur.UserId"); sb.Append(" join tbRoleMenuButton rmb on ur.RoleId=rmb.RoleId"); sb.Append(" join tbMenu m on rmb.MenuId=m.Id"); sb.Append(" join tbButton b on rmb.ButtonId=b.Id"); sb.Append(" where u.Id=@Id and m.Code=@MenuCode and b.Code=@ButtonCode"); MySqlParameter[] paras = { new MySqlParameter("@Id",userId), new MySqlParameter("@MenuCode",menuCode), new MySqlParameter("@ButtonCode",buttonCode) }; object result = FangYar.Common.MySqlHelper.ExecuteScalar(CommandType.Text, sb.ToString(), paras); if (Convert.ToInt32(result) > 0) //如果一个用户有多个角色,角色里的按钮权限有重复,那么这个result可能大于1 return true; else return false; } } }