123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- import config from "config";
- import { UserRole } from "./schemas/user";
- const temp = {
- "data.news.getData": true,
- };
- const user = { ...temp };
- const dj = {
- ...user,
- "stations.autofill": true,
- "stations.blacklist": true,
- "stations.index": true,
- "stations.playback.toggle": true,
- "stations.queue.remove": true,
- "stations.queue.reposition": true,
- "stations.queue.reset": true,
- "stations.request": true,
- "stations.skip": true,
- "stations.view": true,
- "stations.view.manage": true
- };
- const owner = {
- ...dj,
- "stations.djs.add": true,
- "stations.djs.remove": true,
- "stations.remove": true,
- "stations.update": true
- };
- const moderator = {
- ...owner,
- "admin.view": true,
- "admin.view.import": true,
- "admin.view.news": true,
- "admin.view.playlists": true,
- "admin.view.punishments": true,
- "admin.view.reports": true,
- "admin.view.songs": true,
- "admin.view.stations": true,
- "admin.view.users": true,
- "admin.view.youtubeVideos": true,
- "apis.searchDiscogs": !!config.get("apis.discogs.enabled"),
- "news.create": true,
- "news.update": true,
- "playlists.create.admin": true,
- "playlists.get": true,
- "playlists.update.displayName": true,
- "playlists.update.privacy": true,
- "playlists.songs.add": true,
- "playlists.songs.remove": true,
- "playlists.songs.reposition": true,
- "playlists.view.others": true,
- "punishments.banIP": true,
- "punishments.get": true,
- "reports.get": true,
- "reports.update": true,
- "songs.create": true,
- "songs.get": true,
- "songs.update": true,
- "songs.verify": true,
- "stations.create.official": true,
- "stations.index": false,
- "stations.index.other": true,
- "stations.remove": false,
- "users.get": true,
- "users.ban": true,
- "users.requestPasswordReset": !!config.get("mail.enabled"),
- "users.resendVerifyEmail": !!config.get("mail.enabled"),
- "users.update": true,
- "youtube.requestSetAdmin": true,
- ...(config.get("experimental.soundcloud")
- ? {
- "admin.view.soundcloudTracks": true,
- "admin.view.soundcloud": true,
- "soundcloud.getArtist": true
- }
- : {}),
- ...(config.get("experimental.spotify")
- ? {
- "admin.view.spotify": true,
- "spotify.getTracksFromMediaSources": true,
- "spotify.getAlbumsFromIds": true,
- "spotify.getArtistsFromIds": true,
- "spotify.getAlternativeArtistSourcesForArtists": true,
- "spotify.getAlternativeAlbumSourcesForAlbums": true,
- "spotify.getAlternativeMediaSourcesForTracks": true,
- "admin.view.youtubeChannels": true,
- "youtube.getChannel": true
- }
- : {})
- };
- const admin = {
- ...moderator,
- "admin.view.dataRequests": true,
- "admin.view.statistics": true,
- "admin.view.youtube": true,
- "dataRequests.resolve": true,
- "media.recalculateAllRatings": true,
- "media.removeImportJobs": true,
- "news.remove": true,
- "playlists.clearAndRefill": true,
- "playlists.clearAndRefillAll": true,
- "playlists.createMissing": true,
- "playlists.deleteOrphaned": true,
- "playlists.removeAdmin": true,
- "playlists.requestOrphanedPlaylistSongs": true,
- "punishments.deactivate": true,
- "reports.remove": true,
- "songs.remove": true,
- "songs.updateAll": true,
- "stations.clearEveryStationQueue": true,
- "stations.remove": true,
- "users.remove": true,
- "users.remove.sessions": true,
- "users.update.restricted": true,
- "utils.getModules": true,
- "youtube.getApiRequest": true,
- "youtube.getMissingVideos": true,
- "youtube.resetStoredApiRequests": true,
- "youtube.removeStoredApiRequest": true,
- "youtube.removeVideos": true,
- "youtube.updateVideosV1ToV2": true,
- ...(config.get("experimental.soundcloud")
- ? {
- "soundcloud.fetchNewApiKey": true,
- "soundcloud.testApiKey": true
- }
- : {}),
- ...(config.get("experimental.spotify")
- ? {
- "youtube.getMissingChannels": true
- }
- : {})
- };
- const permissions: Record<
- UserRole | "owner" | "dj",
- Record<string, boolean>
- > = { user, dj, owner, moderator, admin };
- export default permissions;
|