mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-04-24 14:08:44 -04:00
Merge pull request #5561 from barronpm/permissions-fix
This commit is contained in:
commit
e1c6bb0482
4 changed files with 26 additions and 15 deletions
|
@ -73,9 +73,6 @@ namespace Jellyfin.Data.Entities
|
|||
PlayDefaultAudioTrack = true;
|
||||
SubtitleMode = SubtitlePlaybackMode.Default;
|
||||
SyncPlayAccess = SyncPlayUserAccessType.CreateAndJoinGroups;
|
||||
|
||||
AddDefaultPermissions();
|
||||
AddDefaultPreferences();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -483,18 +480,11 @@ namespace Jellyfin.Data.Entities
|
|||
return Array.IndexOf(GetPreferenceValues<Guid>(PreferenceKind.GroupedFolders), id) != -1;
|
||||
}
|
||||
|
||||
private static bool IsParentalScheduleAllowed(AccessSchedule schedule, DateTime date)
|
||||
{
|
||||
var localTime = date.ToLocalTime();
|
||||
var hour = localTime.TimeOfDay.TotalHours;
|
||||
|
||||
return DayOfWeekHelper.GetDaysOfWeek(schedule.DayOfWeek).Contains(localTime.DayOfWeek)
|
||||
&& hour >= schedule.StartHour
|
||||
&& hour <= schedule.EndHour;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the default permissions for a user. Should only be called on user creation.
|
||||
/// </summary>
|
||||
// TODO: make these user configurable?
|
||||
private void AddDefaultPermissions()
|
||||
public void AddDefaultPermissions()
|
||||
{
|
||||
Permissions.Add(new Permission(PermissionKind.IsAdministrator, false));
|
||||
Permissions.Add(new Permission(PermissionKind.IsDisabled, false));
|
||||
|
@ -519,12 +509,25 @@ namespace Jellyfin.Data.Entities
|
|||
Permissions.Add(new Permission(PermissionKind.EnableRemoteControlOfOtherUsers, false));
|
||||
}
|
||||
|
||||
private void AddDefaultPreferences()
|
||||
/// <summary>
|
||||
/// Initializes the default preferences. Should only be called on user creation.
|
||||
/// </summary>
|
||||
public void AddDefaultPreferences()
|
||||
{
|
||||
foreach (var val in Enum.GetValues(typeof(PreferenceKind)).Cast<PreferenceKind>())
|
||||
{
|
||||
Preferences.Add(new Preference(val, string.Empty));
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsParentalScheduleAllowed(AccessSchedule schedule, DateTime date)
|
||||
{
|
||||
var localTime = date.ToLocalTime();
|
||||
var hour = localTime.TimeOfDay.TotalHours;
|
||||
|
||||
return DayOfWeekHelper.GetDaysOfWeek(schedule.DayOfWeek).Contains(localTime.DayOfWeek)
|
||||
&& hour >= schedule.StartHour
|
||||
&& hour <= schedule.EndHour;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -190,6 +190,9 @@ namespace Jellyfin.Server.Implementations.Users
|
|||
InternalId = max + 1
|
||||
};
|
||||
|
||||
user.AddDefaultPermissions();
|
||||
user.AddDefaultPreferences();
|
||||
|
||||
_users.Add(user.Id, user);
|
||||
|
||||
return user;
|
||||
|
|
|
@ -128,6 +128,8 @@ namespace Jellyfin.Api.Tests.Auth
|
|||
{
|
||||
var authorizationInfo = _fixture.Create<AuthorizationInfo>();
|
||||
authorizationInfo.User = _fixture.Create<User>();
|
||||
authorizationInfo.User.AddDefaultPermissions();
|
||||
authorizationInfo.User.AddDefaultPreferences();
|
||||
authorizationInfo.User.SetPermission(PermissionKind.IsAdministrator, isAdmin);
|
||||
authorizationInfo.IsApiKey = false;
|
||||
|
||||
|
|
|
@ -29,6 +29,9 @@ namespace Jellyfin.Api.Tests
|
|||
typeof(DefaultAuthenticationProvider).FullName!,
|
||||
typeof(DefaultPasswordResetProvider).FullName!);
|
||||
|
||||
user.AddDefaultPermissions();
|
||||
user.AddDefaultPreferences();
|
||||
|
||||
// Set administrator flag.
|
||||
user.SetPermission(PermissionKind.IsAdministrator, role.Equals(UserRoles.Administrator, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue