aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Barron <barronpm@gmail.com>2020-05-30 20:49:31 -0400
committerPatrick Barron <barronpm@gmail.com>2020-05-30 20:49:31 -0400
commite8b6da3cd71ebb9dd01f3aff4a1c8805be6ba91b (patch)
tree75fff8f9d182c5082747776bb8c8f3ff041d8438
parent4cff9b85120032057178f224f06730e019715b8b (diff)
Expand and document IHasPermissions
-rw-r--r--Jellyfin.Data/Entities/Group.cs13
-rw-r--r--Jellyfin.Data/Entities/User.cs13
-rw-r--r--Jellyfin.Data/IHasPermissions.cs21
3 files changed, 39 insertions, 8 deletions
diff --git a/Jellyfin.Data/Entities/Group.cs b/Jellyfin.Data/Entities/Group.cs
index ecef4102c..b71a1bd78 100644
--- a/Jellyfin.Data/Entities/Group.cs
+++ b/Jellyfin.Data/Entities/Group.cs
@@ -2,6 +2,8 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using Jellyfin.Data.Enums;
namespace Jellyfin.Data.Entities
{
@@ -96,6 +98,15 @@ namespace Jellyfin.Data.Entities
[ForeignKey("Preference_Preferences_Id")]
public virtual ICollection<Preference> Preferences { get; protected set; }
+
+ public bool HasPermission(PermissionKind kind)
+ {
+ return Permissions.First(p => p.Kind == kind).Value;
+ }
+
+ public void SetPermission(PermissionKind kind, bool value)
+ {
+ Permissions.First(p => p.Kind == kind).Value = value;
+ }
}
}
-
diff --git a/Jellyfin.Data/Entities/User.cs b/Jellyfin.Data/Entities/User.cs
index ac87c7ec2..a6221a249 100644
--- a/Jellyfin.Data/Entities/User.cs
+++ b/Jellyfin.Data/Entities/User.cs
@@ -389,16 +389,14 @@ namespace Jellyfin.Data.Entities
RowVersion++;
}
- partial void Init();
-
/// <summary>
/// Checks whether the user has the specified permission.
/// </summary>
- /// <param name="permission">The permission kind.</param>
+ /// <param name="kind">The permission kind.</param>
/// <returns><c>True</c> if the user has the specified permission.</returns>
- public bool HasPermission(PermissionKind permission)
+ public bool HasPermission(PermissionKind kind)
{
- return Permissions.First(p => p.Kind == permission).Value;
+ return Permissions.First(p => p.Kind == kind).Value;
}
/// <summary>
@@ -408,8 +406,7 @@ namespace Jellyfin.Data.Entities
/// <param name="value">The value to set.</param>
public void SetPermission(PermissionKind kind, bool value)
{
- var permissionObj = Permissions.First(p => p.Kind == kind);
- permissionObj.Value = value;
+ Permissions.First(p => p.Kind == kind).Value = value;
}
/// <summary>
@@ -501,5 +498,7 @@ namespace Jellyfin.Data.Entities
Preferences.Add(new Preference(val, string.Empty));
}
}
+
+ partial void Init();
}
}
diff --git a/Jellyfin.Data/IHasPermissions.cs b/Jellyfin.Data/IHasPermissions.cs
index a77e51e1e..3be72259a 100644
--- a/Jellyfin.Data/IHasPermissions.cs
+++ b/Jellyfin.Data/IHasPermissions.cs
@@ -1,10 +1,31 @@
using System.Collections.Generic;
using Jellyfin.Data.Entities;
+using Jellyfin.Data.Enums;
namespace Jellyfin.Data
{
+ /// <summary>
+ /// An abstraction representing an entity that has permissions.
+ /// </summary>
public interface IHasPermissions
{
+ /// <summary>
+ /// Gets a collection containing this entity's permissions.
+ /// </summary>
ICollection<Permission> Permissions { get; }
+
+ /// <summary>
+ /// Checks whether this entity has the specified permission kind.
+ /// </summary>
+ /// <param name="kind">The kind of permission.</param>
+ /// <returns><c>true</c> if this entity has the specified permission, <c>false</c> otherwise.</returns>
+ bool HasPermission(PermissionKind kind);
+
+ /// <summary>
+ /// Sets the specified permission to the provided value.
+ /// </summary>
+ /// <param name="kind">The kind of permission.</param>
+ /// <param name="value">The value to set.</param>
+ void SetPermission(PermissionKind kind, bool value);
}
}