audiobookshelf icon indicating copy to clipboard operation
audiobookshelf copied to clipboard

[Enhancement]: New user permissions for managing podcasts

Open advplyr opened this issue 2 years ago • 6 comments
trafficstars

Describe the feature/enhancement

Adding new podcasts and downloading episodes to the server will be available soon so we need specific user permissions for this.

advplyr avatar Dec 09 '22 00:12 advplyr

Adding podcasts via the app still seems to be restricted to admin only users. With both issues closed, is there plans to allow non-admin users this ability?

maxcovergold avatar Apr 13 '24 10:04 maxcovergold

This issue is still open

advplyr avatar Apr 13 '24 16:04 advplyr

Just wanted to chime in that I’d love to see this developed further. I’ve got members of my household who I would trust to add content to the server, and space to hold it, but I don’t want to give them full blown admin (myself being one, I log in w/root when I need to do admin things but use a non-admin account the rest of the time).

ajn142 avatar May 02 '24 00:05 ajn142

Thanks for mentioning, but the best way to support feature requests is leaving a "thumbs up" reaction to the top comment.

https://www.audiobookshelf.org/faq#i-have-a-feature-request-how-should-i-bring-this-up

nichwall avatar May 02 '24 02:05 nichwall

Thanks for mentioning, but the best way to support feature requests is leaving a "thumbs up" reaction to the top comment.

https://www.audiobookshelf.org/faq#i-have-a-feature-request-how-should-i-bring-this-up

That's fine and dandy, but I wasn't going to remember to come back and look at my likes 😆 . Did that too now.

ajn142 avatar May 02 '24 22:05 ajn142

I don't have time or JavaScript skill to implement this currently, but here are some pointers if anyone else wants to take a crack at it.

Places to modify

  • Sidebar link for podcast search: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/app/SideRail.vue#L90
  • Sidebar link for podcast download: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/app/SideRail.vue#L106
  • Definition of auth function: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/app/SideRail.vue#L157-L159
  • Backing privilege checks: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/store/user.js#L25

Existing permission checks

Reference for how current privilege checks are performed:

  • Checking for delete/download privs in addition to admin: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/tables/LibraryFilesTable.vue#L21
  • Definition of those functions: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/tables/LibraryFilesTable.vue#L59-L67
  • Backing privilege checks: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/store/user.js#L48-L53

Permission backend

  • UI: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/client/components/modals/AccountModal.vue
  • User: https://github.com/advplyr/audiobookshelf/blob/5b22d7430a4cce20185147caeb13f77325b48824/server/models/User.js
  • General search for server-side references: https://github.com/search?q=repo%3Aadvplyr%2Faudiobookshelf+%2Fpermissions%28%5C%3F%3F%5C.%5Ba-z%5D%7C%5C%5B%29%2F+path%3A%2F%5Eserver%5C%2F%2F&type=code

mechanarchy avatar Sep 01 '24 01:09 mechanarchy