[PR #4717] [CLOSED] Add Group visibility and Playback/Playlist Access Control to SyncPlay #10240

Closed
opened 2026-02-07 06:16:36 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/4717
Author: @OancaAndrei
Created: 12/7/2020
Status: Closed

Base: masterHead: syncplay-playback-access-list


📝 Commits (2)

  • 499f3ee Update authorization policies for SyncPlay
  • 883dc23 Add access list and visibility type to SyncPlay group

📊 Changes

25 files changed (+1115 additions, -64 deletions)

View changed files

📝 Emby.Server.Implementations/SyncPlay/Group.cs (+148 -2)
📝 Emby.Server.Implementations/SyncPlay/SyncPlayManager.cs (+110 -1)
📝 Jellyfin.Api/Auth/SyncPlayAccessPolicy/SyncPlayAccessHandler.cs (+50 -3)
📝 Jellyfin.Api/Auth/SyncPlayAccessPolicy/SyncPlayAccessRequirement.cs (+3 -11)
📝 Jellyfin.Api/Constants/Policies.cs (+14 -4)
📝 Jellyfin.Api/Controllers/SyncPlayController.cs (+69 -6)
Jellyfin.Api/Models/SyncPlayDtos/NewGroupRequestDto.cs (+0 -22)
📝 Jellyfin.Data/Entities/User.cs (+2 -2)
Jellyfin.Data/Enums/SyncPlayAccessRequirementType.cs (+28 -0)
📝 Jellyfin.Data/Enums/SyncPlayUserAccessType.cs (+2 -2)
📝 Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs (+18 -4)
MediaBrowser.Controller/SyncPlay/GroupAccessList.cs (+199 -0)
📝 MediaBrowser.Controller/SyncPlay/ISyncPlayManager.cs (+23 -0)
MediaBrowser.Controller/SyncPlay/Requests/ListUsersRequest.cs (+13 -0)
📝 MediaBrowser.Controller/SyncPlay/Requests/NewGroupRequest.cs (+40 -1)
MediaBrowser.Controller/SyncPlay/Requests/UpdateGroupSettingsRequest.cs (+94 -0)
📝 MediaBrowser.Model/SyncPlay/GroupInfoDto.cs (+70 -2)
📝 MediaBrowser.Model/SyncPlay/GroupUpdateType.cs (+10 -0)
MediaBrowser.Model/SyncPlay/GroupVisibilityType.cs (+23 -0)
MediaBrowser.Model/SyncPlay/NewGroupRequestDto.cs (+50 -0)

...and 5 more files

📄 Description

Changes
Add visibility property to SyncPlay groups:

  • Public: visible and joinable by all users;
  • Invite only: visible and joinable only by invited users;
  • Private: visible and joinable only by the user that created it (useful for syncing personal devices).

Add Playback and Playlist Access Control that allows the Group creator to give/revoke auth on who's allowed to edit the playlist and/or control playback.

jellyfin-web PR here.
jellyfin-apiclient-javascript PR here.
Depends on #4716.

Features being tackled in this PR

  • Playback and Playlist Access Control
  • Group types (public, invite only, private)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/4717 **Author:** [@OancaAndrei](https://github.com/OancaAndrei) **Created:** 12/7/2020 **Status:** ❌ Closed **Base:** `master` ← **Head:** `syncplay-playback-access-list` --- ### 📝 Commits (2) - [`499f3ee`](https://github.com/jellyfin/jellyfin/commit/499f3ee9505437a5b38c315201ccc832561be715) Update authorization policies for SyncPlay - [`883dc23`](https://github.com/jellyfin/jellyfin/commit/883dc23ffa75d4304b04dcfc2be0585a09bea3a0) Add access list and visibility type to SyncPlay group ### 📊 Changes **25 files changed** (+1115 additions, -64 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/SyncPlay/Group.cs` (+148 -2) 📝 `Emby.Server.Implementations/SyncPlay/SyncPlayManager.cs` (+110 -1) 📝 `Jellyfin.Api/Auth/SyncPlayAccessPolicy/SyncPlayAccessHandler.cs` (+50 -3) 📝 `Jellyfin.Api/Auth/SyncPlayAccessPolicy/SyncPlayAccessRequirement.cs` (+3 -11) 📝 `Jellyfin.Api/Constants/Policies.cs` (+14 -4) 📝 `Jellyfin.Api/Controllers/SyncPlayController.cs` (+69 -6) ➖ `Jellyfin.Api/Models/SyncPlayDtos/NewGroupRequestDto.cs` (+0 -22) 📝 `Jellyfin.Data/Entities/User.cs` (+2 -2) ➕ `Jellyfin.Data/Enums/SyncPlayAccessRequirementType.cs` (+28 -0) 📝 `Jellyfin.Data/Enums/SyncPlayUserAccessType.cs` (+2 -2) 📝 `Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs` (+18 -4) ➕ `MediaBrowser.Controller/SyncPlay/GroupAccessList.cs` (+199 -0) 📝 `MediaBrowser.Controller/SyncPlay/ISyncPlayManager.cs` (+23 -0) ➕ `MediaBrowser.Controller/SyncPlay/Requests/ListUsersRequest.cs` (+13 -0) 📝 `MediaBrowser.Controller/SyncPlay/Requests/NewGroupRequest.cs` (+40 -1) ➕ `MediaBrowser.Controller/SyncPlay/Requests/UpdateGroupSettingsRequest.cs` (+94 -0) 📝 `MediaBrowser.Model/SyncPlay/GroupInfoDto.cs` (+70 -2) 📝 `MediaBrowser.Model/SyncPlay/GroupUpdateType.cs` (+10 -0) ➕ `MediaBrowser.Model/SyncPlay/GroupVisibilityType.cs` (+23 -0) ➕ `MediaBrowser.Model/SyncPlay/NewGroupRequestDto.cs` (+50 -0) _...and 5 more files_ </details> ### 📄 Description <!-- Ensure your title is short, descriptive, and in the imperative mood (Fix X, Change Y, instead of Fixed X, Changed Y). For a good inspiration of what to write in commit messages and PRs please review https://chris.beams.io/posts/git-commit/ and our documentation. --> **Changes** Add visibility property to SyncPlay groups: - Public: visible and joinable by all users; - Invite only: visible and joinable only by invited users; - Private: visible and joinable only by the user that created it (useful for syncing personal devices). Add Playback and Playlist Access Control that allows the Group creator to give/revoke auth on who's allowed to edit the playlist and/or control playback. `jellyfin-web` PR [here](https://github.com/jellyfin/jellyfin-web/pull/2205). `jellyfin-apiclient-javascript` PR [here](https://github.com/jellyfin/jellyfin-apiclient-javascript/pull/95). Depends on #4716. **Features being tackled in this PR** - [x] Playback and Playlist Access Control - [x] Group types (public, invite only, private) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 06:16:36 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#10240