Autenticação & Autorização

Castopod lida com autenticação e autorização usando codeigniter/shield juntamente com regras personalizadas. Papéis e permissões são definidos em dois níveis:

  1. toda instância
  2. por podcast

Papéis e permissões para toda a instância

Cargos de instância

roledescriptionpermissions
Super administradorTem controle completo sobre Castopod.admin.*, podcasts.*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks
GerenteGerencia o conteúdo de Castopod.podcasts.create, podcasts.import, persons.manage, pages.manage
PodcasterUsuários gerais do Castopod.admin.access

Permissões da instância

permissiondescription
admin.accessPode acessar a área de administração do Castopod.
admin.settingsPode acessar as configurações de Castopod.
users.managePode gerenciar usuários do Castopod.
persons.managePode gerenciar pessoas.
pages.managePode gerenciar páginas.
podcasts.viewPode ver todos os podcasts.
podcasts.createPode criar novos podcasts.
podcasts.importPode importar podcasts.
fediverse.manage-blocksPode bloquear ator/domínios distintos de interagir com Castopod.

2. Por funções de podcast e permissões

Por cargos de podcast

roledescriptionpermissions
AdministradorTem controle completo do podcast #{id}.*
EditorGerencia o conteúdo e as publicações do podcast #{id}.view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments
AutorGerencia o conteúdo do podcast #{id} mas não pode publicá-los.view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips
ConvidadoContribuidor geral do podcast #{id}.view, episodes.view

Por permissões de podcast

permissiondescription
viewPode visualizar o painel de controle e análises do podcast #{id}.
editPode editar o podcast #{id}.
deletePode deletar episódios do podcast #{id}.
manage-importPode sincronizar o podcast importado #{id}.
manage-personsPode gerenciar assinaturas do podcast #{id}.
manage-subscriptionsPode gerenciar assinaturas do podcast #{id}.
manage-contributorsPode gerenciar contribuidores do podcast #{id}.
manage-platformsPode definir/remover links de plataforma do podcast #{id}.
manage-publicationsPode publicar podcast #{id}.
manage-notificationsPode ver e marcar notificações como lidas para o podcast #{id}.
interact-asPode interagir com o podcast #{id} para favorito, compartilhar ou responder às publicações.
episodes.viewPode visualizar o painel de controle e análises do podcast #{id}.
episodes.createPode criar episódios para o podcast #{id}.
episodes.editPode editar o podcast #{id}.
episodes.deletePode deletar episódios do podcast #{id}.
episodes.manage-personsPode gerenciar assinaturas do podcast #{id}.
episodes.manage-clipsPode gerenciar clipes de vídeo ou sons de episódios do podcast #{id}.
episodes.manage-publicationsPode publicar podcast #{id}.
episodes.manage-commentsPode criar/remover comentários de episódio do podcast #{id}.