50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
namespace ZB.MOM.WW.LmxProxy.Host.Security
|
|
{
|
|
/// <summary>
|
|
/// Represents an API key with associated permissions
|
|
/// </summary>
|
|
public class ApiKey
|
|
{
|
|
/// <summary>
|
|
/// The API key value
|
|
/// </summary>
|
|
public string Key { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Description of what this API key is used for
|
|
/// </summary>
|
|
public string Description { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// The role assigned to this API key
|
|
/// </summary>
|
|
public ApiKeyRole Role { get; set; } = ApiKeyRole.ReadOnly;
|
|
|
|
/// <summary>
|
|
/// Whether this API key is enabled
|
|
/// </summary>
|
|
public bool Enabled { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Checks if the API key is valid
|
|
/// </summary>
|
|
public bool IsValid() => Enabled;
|
|
}
|
|
|
|
/// <summary>
|
|
/// API key roles
|
|
/// </summary>
|
|
public enum ApiKeyRole
|
|
{
|
|
/// <summary>
|
|
/// Can only read data
|
|
/// </summary>
|
|
ReadOnly,
|
|
|
|
/// <summary>
|
|
/// Can read and write data
|
|
/// </summary>
|
|
ReadWrite
|
|
}
|
|
}
|