OpenAuth.Net/OpenAuth.App/AuthStrategies/SystemAuthStrategy.cs
yubaolee 4d7af5bedf fix issue #I42IFB 获取Oracle结构异常
fix issue #I462OD JSON解析异常
增加主表ParentId,可以同时添加主、从表结构
可以动态控制复杂界面显示编辑权限,采用代码生成的表定义来控制
2021-08-25 01:42:37 +08:00

117 lines
3.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ***********************************************************************
// Assembly : OpenAuth.App
// Author : 李玉宝
// Created : 06-06-2018
//
// Last Modified By : 李玉宝
// Last Modified On : 07-05-2018
// ***********************************************************************
// <copyright file="SystemAuthStrategy.cs" company="OpenAuth.App">
// Copyright (c) http://www.openauth.net.cn. All rights reserved.
// </copyright>
// <summary>
// 超级管理员授权策略
// </summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using Infrastructure;
using OpenAuth.App.Response;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using OpenAuth.Repository.Interface;
namespace OpenAuth.App
{
/// <summary>
/// 领域服务
/// <para>超级管理员权限</para>
/// <para>超级管理员使用guid.empty为ID可以根据需要修改</para>
/// </summary>
public class SystemAuthStrategy : BaseStringApp<User,OpenAuthDBContext>, IAuthStrategy
{
protected User _user;
private DbExtension _dbExtension;
public List<ModuleView> Modules
{
get {
var modules = (from module in UnitWork.Find<Module>(null)
select new ModuleView
{
SortNo = module.SortNo,
Name = module.Name,
Id = module.Id,
CascadeId = module.CascadeId,
Code = module.Code,
IconName = module.IconName,
Url = module.Url,
ParentId = module.ParentId,
ParentName = module.ParentName,
IsSys = module.IsSys,
Status = module.Status
}).ToList();
foreach (var module in modules)
{
module.Elements = UnitWork.Find<ModuleElement>(u => u.ModuleId == module.Id).ToList();
}
return modules;
}
}
public List<Role> Roles
{
get { return UnitWork.Find<Role>(null).ToList(); }
}
public List<ModuleElement> ModuleElements
{
get { return UnitWork.Find<ModuleElement>(null).ToList(); }
}
public List<Resource> Resources
{
get { return UnitWork.Find<Resource>(null).ToList(); }
}
public List<Org> Orgs
{
get { return UnitWork.Find<Org>(null).ToList(); }
}
public User User
{
get { return _user; }
set //禁止外部设置
{
throw new Exception("超级管理员,禁止设置用户");
}
}
public List<KeyDescription> GetProperties(string moduleCode)
{
return _dbExtension.GetProperties(moduleCode);
}
public List<BuilderTableColumn> GetTableColumns(string moduleCode)
{
return UnitWork.Find<BuilderTableColumn>(u => u.TableName.ToLower() == moduleCode.ToLower()).ToList();
}
public SystemAuthStrategy(IUnitWork<OpenAuthDBContext> unitWork, IRepository<User,OpenAuthDBContext> repository, DbExtension dbExtension) : base(unitWork, repository, null)
{
_dbExtension = dbExtension;
_user = new User
{
Account = Define.SYSTEM_USERNAME,
Name = "超级管理员",
Id = Guid.Empty.ToString()
};
}
}
}