Jump to content

Building a User Groups Plugin; looking for feature thoughts before locking in features


Recommended Posts

Lighthammer
Posted

Hey Guys,

I've spent a lot of time in the forums in the past discussing features. I'm a software designer by trade, but not a programmer. I've gotten pretty good with coding via AI aided tools over the last couple months and I'm ready to take a stab at building something the community here has been asking for a very long time.

I have my basic setup laid out, but before I lock in my feature list, I wanted to get some feedback from the community before I lock things down for my target v1.0 Release.

I do want to point that I am planning to make a basic version of this plugin and a paid version; so I would also like feedback on what things "you'd be willing to pay for. My "obvious target" is that the freeware version will only do the very basics and perhaps cap groups to three-ish; but I am looking for feedback on "what's fair" based upon what I am planning to add into this plugin (suggestions and credits I'll add in will be added to this document).

Here's what I have so far:

What is absolutely going to be in v1.0
First assume the following will be in v1.0

  • Every option Emby has for Individual Users
  • Every option in User Preferences
  • Every option in Device Options

Features I am targeting for v1.0 and beyond:

  • Local and remote configuration storage.
    • This is so that owners/administrators can ensure the plugin's local configuration can't be tampered with.
    • Owners/Administrators can also edit the remote JSON file to add/remove permissions on the fly.
      • An addition UI for this may be implemented in the future; but unsure how I'd want to implement.
    • JSON can be hosted just about anywhere as long as the server can see it. Just need a full URL for plugin to see it.
  • Assigned Groups will provide permissions based on the highest permissive group.
  • Backup Configuration (of course, making sure its on the checklist)
  • Auto-assign new users to a user groups.
  • Auto-save options (unlike current Emby system that requires you to hit save)
  • Combine related controls into one unified interface. 

    Main target is User Configuration and my own plugins in the future.

  • Set firm "Community Devices" (IE Living Room TV vs Bed Room TV)
  • Breakdown of data used by groups/users.
  • Limits on how much data groups can use.
  • Notifications options for:
    • User Groups has been broke.
    • User Groups has been attempted to be accessed without permission.
    • Digests of users from user groups (IE how much TV is my kid watching) 
  • Set time constraints for groups.
    • Will provide up to two warnings before final countdown; customizable.
    • Will have parental override.
      • By system Pin (eventually by device pin)
      • By other users who have logged into/have access to the device.
  • Set quality limits per user group.
  • Set amount of time per cycle (days, weeks, months) a user can use your server.
  • Set rewards required to stream media:
    • IE Must watch X Educational videos on server before you can watch Entertainment Libraries. This is targeted for people using their server with kids in the house.
  • Set Timed Libraries (Libraries/Genres can be available for certain time periods).
    • "Horror" genre might not be available to some users after 9PM.
    • Christmas Libraries/genre may only be available for the month of December.
  • Require Subs for certain usergroups.
    • For parents or ESL peoples trying to learn a new language.

What I'm planning for the backlog for future releases:

Sentinel Mode

Usecase: Intended for parents using Emby as their main or pseudo main source for video entertainment in the household who may have overly tech savvy kids who might be tech savvy enough to think they could just delete the plugin folder and get access to other things.

  • Will have added protection in case someone tries to alter/change the plugin by editing the files directly.
  • Will have several forms of protected modes:
    • Put Emby into maintenance mode until the owner/administrator logs in to review/fix/repair the problems.
    • Attempts to repair the plugin by redownloading it and restoring the last known good configuration of. If fails, has option to:
      • Make no changes to the system.
      • Go into maintenance mode until the owner/administrator logs in to try to fix/repair the plugin.
      • Attempt to redownload the plugin and restore last known good configuration.
      • Stop the Emby process then delete Emby binaries and major resource folders (not metadata). Requires that you have backups enabled. May build a recovery system to go with this.
  • Emergency Fallback Access for Owner/Administrator (relatively easy, but prefer not to "publish" the method for security reasons; so people, search engines or even AIs can't search the forum for the "quick fix")

 

  • Hardware Group Manager (may be separate plugin with support built in for this one) 

    Usecase: Intended to better help administrators manage what devices are who's and who has access to them. I've forked a version of Headscale so that Servers an easier time connecting to clients. This system would bypass Emby's MAC Address hiding and allow users to manage systems by MAC, HWID and GUID without needing access to the router. I'm purpose building this for simplicity with the expectation that Owner/Administrator of the server won't know much about their router.
    • Assign Server to a Headscale Server
    • Assign Devices to users/groups.
    • Have a supervisor bypass code assigned per device.
    • Assign Administrators/Users to devices.
    • Assign a Device to a fixed IP.
    • If Device doesn't connect through assigned IP, it won't have sever access.
    • Can assign into pools (eg 192.168.1.*)

I'm targeting to have this ready by the end of March 2026 (latest), perhaps much earlier if no one purposes a killer feature that has to be in v1.0. If something super amazing is suggested that needs to be in v1.0, I might need to adjust the time; but I already have the scaffolding done.

If anyone wants to help me, please feel free to toss me a little bit of cash to help; I'll provide a perpetual and premium key to anyone who helps at this stage:
https://www.paypal.com/ncp/payment/RYR8KA6NHMUSN 

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...