Files
OrpaonVision/OrpaonVision.Model/Security/PermissionModel.cs
2026-04-06 22:04:05 +08:00

344 lines
6.3 KiB
C#
Raw Permalink 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.
namespace OrpaonVision.Model.Security;
/// <summary>
/// 权限模型。
/// </summary>
public sealed class PermissionModel
{
/// <summary>
/// 权限ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 权限编码。
/// </summary>
public string Code { get; set; } = string.Empty;
/// <summary>
/// 权限名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 权限描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 权限类型。
/// </summary>
public PermissionType Type { get; set; }
/// <summary>
/// 权限模块。
/// </summary>
public string Module { get; set; } = string.Empty;
/// <summary>
/// 权限动作。
/// </summary>
public string Action { get; set; } = string.Empty;
/// <summary>
/// 权限状态。
/// </summary>
public PermissionStatus Status { get; set; }
/// <summary>
/// 是否系统权限。
/// </summary>
public bool IsSystemPermission { get; set; }
/// <summary>
/// 父权限ID。
/// </summary>
public Guid? ParentId { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
/// <summary>
/// 备注。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 权限类型枚举。
/// </summary>
public enum PermissionType
{
/// <summary>
/// 页面权限。
/// </summary>
Page = 0,
/// <summary>
/// 功能权限。
/// </summary>
Function = 1,
/// <summary>
/// 数据权限。
/// </summary>
Data = 2,
/// <summary>
/// API权限。
/// </summary>
Api = 3
}
/// <summary>
/// 权限状态枚举。
/// </summary>
public enum PermissionStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1
}
/// <summary>
/// 角色权限关联模型。
/// </summary>
public sealed class RolePermissionModel
{
/// <summary>
/// 关联ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 角色ID。
/// </summary>
public Guid RoleId { get; set; }
/// <summary>
/// 权限ID。
/// </summary>
public Guid PermissionId { get; set; }
/// <summary>
/// 授权时间UTC
/// </summary>
public DateTime GrantedAtUtc { get; set; }
/// <summary>
/// 授权人。
/// </summary>
public string GrantedBy { get; set; } = string.Empty;
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
}
/// <summary>
/// 操作日志模型。
/// </summary>
public sealed class OperationLogModel
{
/// <summary>
/// 日志ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 用户ID。
/// </summary>
public Guid UserId { get; set; }
/// <summary>
/// 用户名。
/// </summary>
public string Username { get; set; } = string.Empty;
/// <summary>
/// 操作类型。
/// </summary>
public OperationType OperationType { get; set; }
/// <summary>
/// 操作模块。
/// </summary>
public string Module { get; set; } = string.Empty;
/// <summary>
/// 操作描述。
/// </summary>
public string Description { get; set; } = string.Empty;
/// <summary>
/// 操作详情JSON。
/// </summary>
public string? OperationDetailJson { get; set; }
/// <summary>
/// 操作IP。
/// </summary>
public string? IpAddress { get; set; }
/// <summary>
/// 用户代理。
/// </summary>
public string? UserAgent { get; set; }
/// <summary>
/// 操作结果。
/// </summary>
public OperationResult Result { get; set; }
/// <summary>
/// 错误消息。
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// 操作时间UTC
/// </summary>
public DateTime OperatedAtUtc { get; set; }
/// <summary>
/// 会话ID。
/// </summary>
public string? SessionId { get; set; }
/// <summary>
/// 请求ID。
/// </summary>
public string? RequestId { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
}
/// <summary>
/// 操作类型枚举。
/// </summary>
public enum OperationType
{
/// <summary>
/// 登录。
/// </summary>
Login = 0,
/// <summary>
/// 登出。
/// </summary>
Logout = 1,
/// <summary>
/// 创建。
/// </summary>
Create = 2,
/// <summary>
/// 更新。
/// </summary>
Update = 3,
/// <summary>
/// 删除。
/// </summary>
Delete = 4,
/// <summary>
/// 查询。
/// </summary>
Query = 5,
/// <summary>
/// 导入。
/// </summary>
Import = 6,
/// <summary>
/// 导出。
/// </summary>
Export = 7,
/// <summary>
/// 启用。
/// </summary>
Enable = 8,
/// <summary>
/// 禁用。
/// </summary>
Disable = 9,
/// <summary>
/// 发布。
/// </summary>
Publish = 10,
/// <summary>
/// 回滚。
/// </summary>
Rollback = 11
}
/// <summary>
/// 操作结果枚举。
/// </summary>
public enum OperationResult
{
/// <summary>
/// 成功。
/// </summary>
Success = 0,
/// <summary>
/// 失败。
/// </summary>
Failed = 1,
/// <summary>
/// 警告。
/// </summary>
Warning = 2
}