aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2023-02-08 23:55:26 +0100
committercvium <clausvium@gmail.com>2023-02-09 13:51:37 +0100
commit209edd38a4163a8cf4abd5e47bfe0ea1a100f351 (patch)
tree58a255cbea40ccaf6397a7c3a5a66d960cd97f38 /Jellyfin.Data
parent231e0273c2e6cc2a254c72dd19731481d160c0ea (diff)
refactor: simplify authz
Diffstat (limited to 'Jellyfin.Data')
-rw-r--r--Jellyfin.Data/DayOfWeekHelper.cs11
-rw-r--r--Jellyfin.Data/Entities/User.cs3
2 files changed, 13 insertions, 1 deletions
diff --git a/Jellyfin.Data/DayOfWeekHelper.cs b/Jellyfin.Data/DayOfWeekHelper.cs
index b7ba30180..d1ce8185f 100644
--- a/Jellyfin.Data/DayOfWeekHelper.cs
+++ b/Jellyfin.Data/DayOfWeekHelper.cs
@@ -17,5 +17,16 @@ namespace Jellyfin.Data
_ => new[] { (DayOfWeek)day }
};
}
+
+ public static bool Contains(this DynamicDayOfWeek dynamicDayOfWeek, DayOfWeek dayOfWeek)
+ {
+ return dynamicDayOfWeek switch
+ {
+ DynamicDayOfWeek.Everyday => true,
+ DynamicDayOfWeek.Weekday => dayOfWeek is > DayOfWeek.Sunday and <= DayOfWeek.Friday,
+ DynamicDayOfWeek.Weekend => dayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday,
+ _ => (DayOfWeek)dynamicDayOfWeek == dayOfWeek
+ };
+ }
}
}
diff --git a/Jellyfin.Data/Entities/User.cs b/Jellyfin.Data/Entities/User.cs
index eb59e70f3..4ce581749 100644
--- a/Jellyfin.Data/Entities/User.cs
+++ b/Jellyfin.Data/Entities/User.cs
@@ -525,8 +525,9 @@ namespace Jellyfin.Data.Entities
{
var localTime = date.ToLocalTime();
var hour = localTime.TimeOfDay.TotalHours;
+ var currentDayOfWeek = localTime.DayOfWeek;
- return DayOfWeekHelper.GetDaysOfWeek(schedule.DayOfWeek).Contains(localTime.DayOfWeek)
+ return schedule.DayOfWeek.Contains(currentDayOfWeek)
&& hour >= schedule.StartHour
&& hour <= schedule.EndHour;
}