QSMP.Logic/Sys/SysRoleAuthorizeLogic.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using QSMP.Entity.Sys;
using QSMP.Logic.Base;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using QSMP.Utility.Operator;

namespace QSMP.Logic.Sys
{
    public class SysRoleAuthorizeLogic : BaseLogic
    {
        /// <summary>
        /// 获得角色权限关系
        /// </summary>
        /// <returns></returns>
        public List<SysRoleAuthorize> GetList()
        {
            using (var db = GetInstance())
            {
                return db.Queryable<SysRoleAuthorize>().ToList();
            }
        }

        /// <summary>
        /// 根据角色ID获得角色权限关系
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public List<SysRoleAuthorize> GetList(string roleId)
        {
            using (var db = GetInstance())
            {
                return db.Queryable<SysRoleAuthorize>().Where(it => it.RoleId == roleId).ToList();
            }
        }

        /// <summary>
        /// 给某个角色授权
        /// </summary>
        /// <param name="roleId"></param>
        /// <param name="perIds"></param>
        public void Authorize(string roleId, params string[] perIds)
        {
            using (var db = GetInstance())
            {
                //a.角色需要重新设置的权限ID集合。
                var listNewPerIds = perIds.ToList();
                //b.角色原有的授权信息。
                var listOldPers = GetList(roleId);


                //c.删除角色新设置和原有授权信息集合中相同的记录。
                for (int i = listOldPers.Count - 1; i >= 0; i--)
                {
                    if (listNewPerIds.Contains(listOldPers[i].ModuleId))
                    {
                        listNewPerIds.Remove(listOldPers[i].ModuleId);
后面还有 63 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。