131 lines
3.9 KiB
C#
131 lines
3.9 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace BLL
|
|||
|
{
|
|||
|
public static class RolePowerService
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 增加角色权限
|
|||
|
/// </summary>
|
|||
|
/// <param name="power"></param>
|
|||
|
public static void SaveRolePower(Model.Sys_RolePower power)
|
|||
|
{
|
|||
|
Model.SGGLDB db = Funs.DB;
|
|||
|
string newRolePower = SQLHelper.GetNewID();
|
|||
|
Model.Sys_RolePower newPower = new Model.Sys_RolePower
|
|||
|
{
|
|||
|
RolePowerId = newRolePower,
|
|||
|
RoleId = power.RoleId,
|
|||
|
MenuId = power.MenuId,
|
|||
|
MenuType=power.MenuType,
|
|||
|
IsOffice=power.IsOffice,
|
|||
|
};
|
|||
|
|
|||
|
db.Sys_RolePower.InsertOnSubmit(newPower);
|
|||
|
db.SubmitChanges();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 判断菜单是否存在
|
|||
|
/// </summary>
|
|||
|
/// <param name="postId"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static bool IsExistMenu(string menuId)
|
|||
|
{
|
|||
|
Model.Sys_Menu m = Funs.DB.Sys_Menu.FirstOrDefault(e => e.MenuId == menuId);
|
|||
|
if (m != null)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 删除权限
|
|||
|
/// </summary>
|
|||
|
/// <param name="postId"></param>
|
|||
|
public static void DeleteRolePowerByRoleIdMenuType(string roleId, string menuType)
|
|||
|
{
|
|||
|
Model.SGGLDB db = Funs.DB;
|
|||
|
var q = from x in db.Sys_RolePower
|
|||
|
join y in db.Sys_Menu on x.MenuId equals y.MenuId
|
|||
|
where x.RoleId == roleId && y.MenuType == menuType
|
|||
|
select x;
|
|||
|
if (q.Count() > 0)
|
|||
|
{
|
|||
|
db.Sys_RolePower.DeleteAllOnSubmit(q);
|
|||
|
db.SubmitChanges();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取角色权限
|
|||
|
/// </summary>
|
|||
|
/// <param name="roleId"></param>
|
|||
|
public static List<Model.Sys_RolePower> GetRolePower(string roleId)
|
|||
|
{
|
|||
|
List<Model.Sys_RolePower> powerList = Funs.DB.Sys_RolePower.Where(e => e.RoleId == roleId).ToList();
|
|||
|
return powerList;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据角色Id、菜单id查询是否有权限
|
|||
|
/// </summary>
|
|||
|
/// <param name="roleId"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static bool IsHavePowerByRoleIdMenuId(string roleId,string menuId)
|
|||
|
{
|
|||
|
bool isHave = false;
|
|||
|
var q = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == roleId && x.MenuId == menuId);
|
|||
|
if (q != null)
|
|||
|
{
|
|||
|
isHave = true;
|
|||
|
}
|
|||
|
return isHave;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据角色主键获得角色权限数量
|
|||
|
/// </summary>
|
|||
|
/// <param name="roleId">角色</param>
|
|||
|
/// <returns></returns>
|
|||
|
public static int GetPostPowerCountByRoleId(string roleId)
|
|||
|
{
|
|||
|
var q = (from x in Funs.DB.Sys_RolePower where x.RoleId == roleId select x).ToList();
|
|||
|
return q.Count();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 根据角色主键获得对应的菜单权限
|
|||
|
/// </summary>
|
|||
|
/// <param name="roleId">角色主键</param>
|
|||
|
/// <returns>菜单ID数组</returns>
|
|||
|
public static string[] GetMenuIdByRoleId(string roleId)
|
|||
|
{
|
|||
|
var q = Funs.DB.Sys_RolePower.Where(e => e.RoleId == roleId);
|
|||
|
string[] menuId = new string[q.Count()];
|
|||
|
if (q.Count() > 0)
|
|||
|
{
|
|||
|
int i = 0;
|
|||
|
foreach (var menu in q)
|
|||
|
{
|
|||
|
menuId[i] = menu.MenuId;
|
|||
|
i++;
|
|||
|
}
|
|||
|
|
|||
|
return menuId;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|