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
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
|