软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
1.8 KiB

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
namespace FangYar.OracleDAL
{
/// <summary>
/// 权限(Oracle数据库实现)
/// </summary>
public class Authority : FangYar.IDAL.IAuthority
{
/// <summary>
/// 判断当前用户是否有权限
/// </summary>
/// <param name="menuCode">菜单标识码</param>
/// <param name="buttonCode">按钮标识码</param>
/// <param name="userId">用户主键</param>
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;
}
}
}