using System.Collections.Generic;
using Jellyfin.Data.Entities;
using Jellyfin.Data.Enums;
namespace Jellyfin.Data.Interfaces
{
///
/// An abstraction representing an entity that has permissions.
///
public interface IHasPermissions
{
///
/// Gets a collection containing this entity's permissions.
///
ICollection Permissions { get; }
///
/// Checks whether this entity has the specified permission kind.
///
/// The kind of permission.
/// true if this entity has the specified permission, false otherwise.
bool HasPermission(PermissionKind kind);
///
/// Sets the specified permission to the provided value.
///
/// The kind of permission.
/// The value to set.
void SetPermission(PermissionKind kind, bool value);
}
}