Comments (9)
Deny and allow renderers
Renderer can be described by an IP address, but also an upnp uuid.
IP address can change (DHCP or manual change).
UUID can be changed as well when you reset the device (dynamically created).
So it's an hard goal.
Show and hide folders based on renderers
Maybe to allow this, we can use the users/groups.
Default shared conf -> all
Added custom shared -> user only
Then, link user to a device by UUID.
from universalmediaserver.
Did we need to keep the old browser files ??
Also, if you ban an IP for a renderer, it will not be able to reach the server, so you will not fill the allowed renderer field.
I will back with a better solution.
from universalmediaserver.
I will be able to look at this only in a week.
from universalmediaserver.
@SubJunk
After looking at Show and hide folders based on renderers
I tried some way to do this, and I end with :
Easy part :
Set the rigth on shared:
Add a member AuthorizedGroups
to SharedContent
that keep a List<Integer>
(group ids).
If empty, all groups are allowed.
Set the account on renderer :
Add a new key UserId
on RendererConfiguration
that keep the user id (integer).
Add a member Account
to Renderer
that keep the account linked to the renderer device, filled by the RendererConfiguration
or logged account for WebRenderer
.
If empty, set to a fake account (0) that allow only SharedContent
with empty authorized groups.
Hard part :
UMS was coded in the way that all renderers share everything (shares, global repo ids, status, etc).
For the DLNAResource part :
DLNAResource
is a lot messy.
DLNAMediaInfo
as well (should have nothing to do with DLNA nor renderer or account)
Should not reside under DLNA things.
Should not have user related things (Status of playcount, etc) -> MediaStatus
.
It should not be video related but container related, then it can contain MediaVideo
, MediaAudio
, MediaChapter
, MediaImage
, and so on.
Refactor DLNAMediaInfo
-> MediaInfo
Is used by all renderer, so updating it should be replicated to every renderer.
So, should use a static Object Array that keep MediaInfo
for all the DLNAResource
.
Added class MediaStatus
that keep the status ->
Is used by multiple renderer sharing the same user, so updating it should be replicated to same user renderers.
So, should use a static Object Array that keep MediaStatus
for all the DLNAResource
by user id.
This will allow to track status based on user.
DLNAResource is renderer aware, so it should be created for each renderer under its own RootFolder.
But first I need to clean some things.
from universalmediaserver.
Cool idea about the user groups. I like it
from universalmediaserver.
I think the old browser files can be removed if you agree
I look forward to seeing your better solution
from universalmediaserver.
Goal 1 is done thanks to @SurfaceS
Do you want to work on number 2 as well? Otherwise I can try
from universalmediaserver.
@SurfaceS ok, I will focus on continuing my HDR and transcoding/muxing fixes so you can do that
from universalmediaserver.
Cool, those all seem like good changes and will make the code more readable. Nice work
from universalmediaserver.
Related Issues (20)
- Unable to open any files using Smart TV "BRAVIA XR-55X90K" HOT 1
- Adding file / monitored folders / docker environment
- 'Check for updates' button locks up UMS (13.8.0) HOT 2
- Fix Live Subtitles HOT 1
- Note for developers about dependencies
- Readme: The CI badge image broken HOT 2
- INSTALL.txt for Linux (x86_64) refers to vlc-nox rather than vlc-bin HOT 1
- Configuration file Samsung QLED 4K 2023 Q68C (DTS codecs are not supported, disable mkv transcoding) HOT 4
- Unable to rewind/search video
- Make UMS fully DPI aware HOT 3
- Donation links broken HOT 2
- Folders are not filtered with folder_names_ignored when new files are added or deleted HOT 12
- Split messages properties HOT 1
- Differentiate between Media Renderers and Control Points HOT 3
- Move FAQ entries to Knowledge Base
- sometimes it randomly freeze for brief amount of time and stay freeze even after restart. HOT 2
- YouTube LIVE HOT 1
- HLS transcoding not using the GPU HOT 2
- Listening on 0.0.0.0 does not work, cannot listen on multiple IP addresses
- Can't start web settings HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from universalmediaserver.