Documentación

Permisos por carpeta de pantallas

Un gerente de hotel dirige las pantallas de un hotel, el agente de una agencia trabaja en el piso de un cliente, un líder regional está a cargo de una docena de tiendas. Limite a cada uno a las carpetas de pantallas y las pantallas en las que trabaja. Todo lo que hay dentro de una carpeta es suyo, todo lo que está fuera queda fuera de su alcance, y las pantallas más importantes pueden exigir un segundo aprobador para cada cambio.

Quién está limitado

  • Un miembro. El propietario del proyecto limita a un miembro a carpetas de pantallas y pantallas elegidas. El miembro inicia sesión como antes y ve y cambia solo sus propias pantallas.
  • Un agente. El propietario limita a un agente de la misma manera. Además, un agente nunca llega más lejos que la persona responsable de él: su alcance es el suyo propio restringido por el de esa persona, de modo que una persona limitada nunca actúa a través de un agente más amplio.
  • Nunca limitados. El propietario del proyecto y los clientes de servicio de todo el proyecto.

Un límite es un alcance. Se lee en cada solicitud, nunca se guarda en un token ni en una sesión, así que un cambio se aplica en la siguiente solicitud de la persona sin volver a iniciar sesión. Un llamador sin alcance trabaja en todo el proyecto y no paga nada por la comprobación.

Carpetas y herencia

Las carpetas de pantallas son la jerarquía. Un alcance que nombra una carpeta contiene todas las pantallas de esa carpeta y de cada carpeta que hay dentro, y sigue a la carpeta cuando esta se mueve.

Hotel
  Lobby            <- the lobby manager's scope holds Lobby and Bar
    Bar
  Casino Floor     <- the floor manager's scope holds Casino Floor
  Rooms
  • Un alcance contiene hasta 1000 carpetas y 200 pantallas individuales, y al menos una de las dos cosas.
  • Una pantalla individual puede estar en cualquier número de alcances, y también una carpeta.
  • Los ids deben nombrar carpetas y pantallas vivas del proyecto cuando se escribe el alcance. Una carpeta o pantalla eliminada después deja un id que no concede nada.
  • Un miembro que aprueba revisiones se limita a carpetas. Las pantallas individuales son para miembros que no aprueban.
  • Una persona está limitada a pantallas o es un usuario de carga, nunca ambas cosas: un usuario de carga está limitado a contenido, un miembro limitado a pantallas.

Definir un alcance

Solo el propietario del proyecto define, cambia o termina un alcance, en el panel.

  1. Abra la página Acceso del panel.
  2. En Personas, abra el miembro y use Pantallas. Marque las carpetas, que incluyen todo lo que hay dentro, y añada pantallas individuales si el miembro no aprueba. Guarde.
  3. Para un agente, ábralo en Agentes y use el mismo control Pantallas.
  4. Para limitar a una persona antes de que se una, añada el alcance a la invitación.

Quite el alcance en el mismo lugar para dar de nuevo al miembro todo el proyecto.

Definir el alcance de un miembro termina los agentes que esa persona trajo al proyecto, para que nada conserve el alcance más amplio que se les dio antes. Un alcance se rechaza mientras la persona, o un agente que trajo, tenga un cliente de servicio activo del proyecto: revoque cada cliente que nombra el rechazo y defina el alcance de nuevo. Transferir el proyecto a un miembro quita el alcance de ese miembro.

Un miembro invitado con un alcance se une como miembro que no puede aprobar. El propietario activa Puede aprobar para esa persona en la misma página cuando deba decidir revisiones de sus carpetas.

Lo que hace y ve una persona limitada

Dentro del alcance, una persona limitada trabaja como lo hace un miembro del proyecto: en el panel, con la CLI y por la API:

  • Pantallas. Lectura, salud, reproducciones, disponibilidad, capturas de pantalla y vista en vivo, comentarios, comandos como reiniciar, borrar la caché, identificar y actualizar, etiquetas, campos, ubicación, nombre, lista de reproducción, programación de lista de reproducción, toma de control, archivado y eliminación.
  • Carpetas. Crear, renombrar, mover y eliminar carpetas dentro del alcance, y definir la lista de reproducción predeterminada de una carpeta. La carpeta que nombra un alcance permanece: solo la elimina una persona con un alcance más amplio.
  • Movimientos. Una pantalla o carpeta se mueve de un lugar dentro del alcance a otro. El origen y el destino están ambos dentro de él.
  • Campañas. Crear, cambiar y eliminar una campaña cuya audiencia completa está dentro del alcance.
  • Acciones de flota. Seleccionar pantallas por id o por carpeta dentro del alcance.
  • Pantallas nuevas. Una persona limitada que puede aprobar empareja o aprovisiona una pantalla en una carpeta del alcance. La pantalla nueva nombra su carpeta, así que queda dentro del alcance.
  • Notas. Leer y escribir las notas sobre sus propias pantallas, sobre listas de reproducción y sobre nada.

El contenido (medios, listas de reproducción, aplicaciones, tarjetas, datos de tarjeta) sigue regido por el rol del miembro, exactamente como para cualquier miembro.

Una persona limitada no accede a ninguna administración del proyecto: se rechazan los miembros, las invitaciones, los clientes de servicio, los inicios de sesión de agentes, los enlaces de flota, la facturación, los ajustes, los webhooks, las notificaciones, las alertas, los activadores, las importaciones de programaciones y los informes de todo el proyecto. Cada uno responde outside_screen_scope.

Una campaña es editable solo dentro del alcance

Una campaña se muestra a todos, y una persona limitada la edita solo cuando toda su audiencia está dentro de su alcance. De lo contrario editable es false y la campaña es de solo lectura para ella.

  • Una carpeta o pantalla del alcance está dentro de él.
  • Una regla any está dentro cuando todos los hijos lo están.
  • Una regla all está dentro cuando al menos un hijo lo está, porque es una intersección.
  • Una regla de etiqueta y la regla de todas las pantallas nunca están dentro.

Una persona limitada que no puede aprobar

Un miembro limitado que no puede aprobar revisiones lee todo lo que hay en el alcance y ejecuta comandos, capturas de pantalla y comentarios, y cambia lo que se reproduce solo a través de un aprobador. Asignar una lista de reproducción, programaciones, tomas de control, campañas, carpetas y movimientos responden approver_required para él. Un miembro sin alcance no cambia.

Qué queda fuera del alcance

Las pantallas fuera del alcance se ocultan de toda lista: la lista de pantallas, las pantallas de una carpeta, las pantallas de campañas, el calendario, los eventos y la transmisión en vivo. El árbol de carpetas muestra las carpetas del alcance y las carpetas que están encima, de solo lectura y sin recuento de pantallas, para que el árbol tenga raíz. Sus carpetas hermanas se ocultan.

Una solicitud que nombra una pantalla, carpeta, selector o audiencia fuera del alcance se rechaza por completo y nunca se acota: no se escribe nada. Un id fuera del alcance y un id que no existe reciben la misma respuesta.

{
  "status": 403,
  "errors": [
    {
      "code": "outside_screen_scope",
      "screen_scope": { "folder_ids": ["sfd_01LOBBY"], "screen_ids": [] },
      "hint": "Ask the project owner to widen the scope, or leave this to a member of the whole project."
    }
  ]
}

screen_scope nombra el alcance propio del llamador, para que este sepa qué puede usar. Los registros de reproducción, el calendario y el registro del Player aceptan una pantalla del alcance (el calendario también una carpeta). La tendencia de salud de todo el proyecto y la disponibilidad diaria se rechazan; el historial de salud y la disponibilidad por pantalla están abiertos.

Administración delegada

Dé a un gerente de sede sus carpetas y deje que las dirija:

  1. El propietario limita al gerente a las carpetas de la sede.
  2. El propietario activa Puede aprobar para el gerente.
  3. El gerente asigna listas de reproducción, programaciones y campañas en sus carpetas directamente, y decide las revisiones que proponen los agentes para esas carpetas.

Un aprobador limitado decide solo una revisión cuyo alcance completo está dentro del suyo, y la página Revisiones lista solo esas. Un aprobador limitado no decide ninguna revisión de creatividad publicitaria. Una revisión que alcanza una pantalla fuera del alcance responde outside_screen_scope.

Miembros, invitados y administradores de la organización

Una persona tiene como máximo una organización principal. Las personas cuya organización principal es esa son sus miembros. En un proyecto de cualquier otra organización, una persona es externa, un invitado, y la lista de personas del proyecto la marca. La pertenencia a un proyecto sigue siendo la única vía de acceso a su contenido. GET /api/session informa organization de una persona, y GET /api/members marca a cada invitado con external.

  • Convertirse en miembro. Un administrador de la organización invita a una persona por correo electrónico, y al aceptar, esa organización pasa a ser su organización principal en lugar de cualquier otra. Las personas con dirección en un dominio verificado de la organización son miembros, igual que cualquiera a quien gestione el inicio de sesión único o el aprovisionamiento de usuarios. Una persona sin organización principal que crea un proyecto adopta la organización de este como su organización principal. Unirse a un proyecto nunca cambia la organización principal.
  • Eliminar a un miembro. Un administrador elimina a un miembro de la organización. Se borra su organización principal y termina el acceso a proyectos que le dio un administrador o una invitación; el acceso que da el aprovisionamiento de usuarios sigue a cargo del aprovisionamiento. Una persona eliminada queda fuera, incluso en un dominio verificado, hasta que reciba una nueva invitación. Se rechaza eliminarla mientras sea propietaria de un proyecto de la organización (member_owns_projects): transfiéralo antes. Una persona gestionada por el proveedor de identidad de la organización se elimina allí (managed_member), y un administrador se elimina cuando termina su puesto de administrador (organization_admin_member).

Política de invitados

Una organización elige, en Configuración de la organización, a quién admite como invitado en sus proyectos.

PolíticaAdmite
PermitirTodo invitado. Es el valor predeterminado
DominiosUn invitado cuya dirección de correo electrónico verificada está en uno de hasta 20 dominios listados
NingunoNingún invitado

La política se aplica a las personas cuando se añaden a un proyecto: en una invitación, de nuevo en su aceptación, mediante una vinculación de grupo y cuando un administrador añade a alguien. A los miembros y a los administradores de la propia organización nunca se les rechaza. Un rechazo es guest_not_allowed. Restringir la política no elimina a nadie: la página Personas marca a cada invitado que no admitiría.

Biblioteca

Un administrador de la organización elige un proyecto como Biblioteca de la organización en Configuración de la organización (Premium, Education y Enterprise). Todos los demás proyectos de la organización usan entonces los medios, carpetas y listas de reproducción de la Biblioteca, en solo lectura:

  • Coloque sus medios en páginas.
  • Reproduzca una carpeta de la Biblioteca con un selector de carpeta. Los selectores de etiqueta y de todos usan solo los medios propios del proyecto.
  • Programe sus listas de reproducción e inicie listas de reproducción a partir de sus plantillas.

Solo los miembros de la propia Biblioteca los modifican. Un proyecto con pantallas no puede ser la Biblioteca, y una vez que lo es no se le pueden añadir pantallas (library_no_screens). Los agentes enumeran la Biblioteca con screenrig media list --library, screenrig media folder list --library y screenrig playlist list --library.

Qué hace un administrador de la organización

Un administrador tiene autoridad sobre todos los proyectos de la organización, y lee el contenido de un proyecto solo después de unirse a él.

  • Unirse a un proyecto. El administrador se une como aprobador, sin alcance, a cualquier proyecto de la organización, también cuando ya era un miembro limitado. Queda registrado en el registro de auditoría y se envía un correo electrónico al propietario del proyecto. Volver a unirse no cambia nada.
  • Cambiar el propietario. El administrador nombra propietario del proyecto a un miembro verificado del proyecto o a otro miembro de la organización, también cuando el propietario se ha ido o está desactivado. Un administrador que se ha unido puede nombrarse a sí mismo propietario. Queda registrado, y se envía un correo electrónico al propietario anterior y al nuevo.
  • Eliminar a un miembro del proyecto. El administrador elimina a cualquier miembro que no sea el propietario ni él mismo. Queda registrado.
  • En un proyecto del que es miembro, el administrador tiene sobre otras personas los controles de miembros del propietario: eliminar miembros, definir quién puede aprobar, definir los alcances de pantallas y de carga, transferir la propiedad y vincular grupos SCIM.

Carpetas protegidas

Una carpeta protegida es para pantallas en las que ninguna persona sola cambia lo que se reproduce. Una persona que puede aprobar activa Protegida para una carpeta en el panel, y la protección abarca todas las carpetas que contiene. Los agentes y los clientes de servicio nunca protegen una carpeta, y un agente quita la protección solo como propuesta: screenrig screen folder update ID --unprotect se convierte en una revisión que decide un segundo aprobador. Un aprobador limitado protege carpetas dentro de su alcance, no una carpeta que su alcance nombra. Un cambio que alcanza una pantalla de una carpeta protegida se convierte en una revisión que decide un segundo aprobador, con cualquier nivel de acceso, incluido Administrar.

Un agente que asigna una lista de reproducción a una pantalla de una carpeta protegida recibe pending_review y la revisión. La pantalla sigue reproduciendo lo que reproducía hasta que un segundo aprobador decida.

screenrig screen assign scr_01EXAMPLESCREEN000000000 --playlist-id pl_01WELCOME
screenrig reviews list --kind protected_change
screenrig reviews show rvw_01EXAMPLEREVIEW0000000000

Lo que ocurre con un cambio depende del cambio:

  • Una revisión. Asignar una lista de reproducción, definir o borrar una programación de lista de reproducción o una toma de control, en una pantalla o en una flota, es una revisión screen_change. Crear, cambiar o eliminar una campaña cuya audiencia alcanza una pantalla protegida, crear una carpeta dentro de una carpeta protegida, mover, eliminar o definir la lista de reproducción predeterminada de una carpeta que está dentro de una carpeta protegida o que contiene una, mover pantallas o carpetas hacia dentro o fuera de una, y quitar la protección son una revisión protected_change. El cambio se aplica en la decisión de aprobación. Un cambio de nombre se aplica de inmediato.
  • Un rechazo. Las ediciones de etiquetas, campos, ubicación, zona horaria y pared de video, el reemplazo de una pantalla, la eliminación, el archivado, la suspensión, el encendido de la pantalla y su programación, una página de reproducción, un toast, el inventario publicitario, los destinos de activadores y las importaciones de programaciones que alcanzan una pantalla protegida responden protected_target. Para hacer el cambio, un aprobador quita la protección mediante una revisión, se hace el cambio y la carpeta se vuelve a proteger. Un activador que se difunde deja las pantallas protegidas como están y las cuenta.
  • Abierto. Reanudar, desarchivar, reiniciar, recargar, identificar, mantenimiento y capturas de pantalla siguen abiertos.

Una revisión espera a una persona distinta del proponente y distinta de la persona responsable del agente o cliente de servicio proponente. La decisión se rechaza con second_approver_required cuando quien decide es la misma persona. Cuando el proyecto tiene un solo aprobador, el rechazo indica que se haga aprobador a otro miembro. Un cambio propuesto antes de que su carpeta fuera protegida se somete a la regla cuando se aprueba. Una revisión que quedó desactualizada mientras esperaba responde review_stale; proponga el cambio de nuevo.

Un proyecto sin carpeta protegida no paga nada por la regla.

Campañas reservadas

Una campaña marcada como Reservada solo la cambia, pausa, elimina o deja de reservar una persona que puede aprobar revisiones: el propietario, o un aprobador cuyo alcance contiene toda la audiencia de la campaña. Una persona activa Reservada en el formulario de la campaña en el panel. Los agentes y los clientes de servicio nunca cambian una campaña reservada, con ningún nivel de acceso, y sus intentos responden reserved_item. Reserve la campaña que lleva la programación fija de una marca, y un gerente o un agente no podrá cambiarla por accidente.

Las etiquetas no son alcance

Un alcance son carpetas y pantallas individuales. Cualquiera que pueda cambiar una pantalla puede escribir sus etiquetas, así que un alcance por etiquetas permitiría a un gerente ampliar su propio alcance o el de otro gerente. Use carpetas para la propiedad y etiquetas para la selección dentro de ellas.

Una acción de flota o una campaña que selecciona por etiqueta se rechaza por completo a una persona limitada, con outside_screen_scope, y la pista indica seleccionar por ids o por carpeta.

Agentes

Un agente limitado trabaja con la CLI como lo hace un miembro limitado en el panel.

screenrig agent status
screenrig screen list
screenrig screen folder list
screenrig screen pair "$PAIRING_CODE" --folder sfd_01LOBBY --name "Lobby entrance"
screenrig screen assign scr_01EXAMPLESCREEN000000000 --playlist-id pl_01WELCOME
screenrig screen folder update sfd_01LOBBY --unprotect
screenrig campaign show cmp_01EXAMPLECAMPAIGN0000000
  • agent status muestra screen_scope del agente y person_screen_scope de la persona responsable de él.
  • screen list y screen folder list contienen solo sus pantallas y carpetas.
  • screen pair acepta --folder y requiere una carpeta del alcance.
  • screen folder update ID --unprotect propone quitar la protección de una carpeta, enviada sola. Se convierte en una revisión que decide un segundo aprobador.
  • campaign show imprime editable y reserved.
  • Sin proyecto seleccionado, screen list omite un proyecto donde el agente está limitado. Seleccione el proyecto.

Rechazos y cómo solucionarlos

Cada rechazo nombra el camino de regreso en su hint.

ProblemaEstadoCuándoCorregir
outside_screen_scope403La pantalla, carpeta, selector, audiencia o ruta está fuera del alcance del llamadorUse una pantalla o carpeta en screen_scope, o pida al propietario del proyecto que amplíe el alcance
approver_required403Un miembro limitado que no puede aprobar cambia lo que se reproduce, o un agente, un cliente de servicio o una persona que no puede aprobar protege una carpetaPida a un aprobador que haga el cambio, o pida al propietario que active Puede aprobar
protected_target409El cambio alcanza una pantalla de una carpeta protegida y no tiene una vía de revisiónPida a un aprobador que quite la protección mediante una revisión, haga el cambio y proteja la carpeta de nuevo
second_approver_required403La persona que decide una revisión protegida es el proponente o responde por el agente proponentePida a otro aprobador, o pida al propietario que deje que otro miembro apruebe revisiones
reserved_item403Una campaña reservada la cambia alguien que no puede aprobar, o un agente o un cliente de servicioPida a un aprobador que haga el cambio o que quite la marca
review_stale409La campaña, carpeta o pantallas contra las que se propuso una revisión protegida cambiaronLéalos de nuevo y proponga el cambio de nuevo
resource_conflict409Se define un alcance para el propietario, para un usuario de carga, para un aprobador con pantallas individuales, o mientras un cliente de servicio de la persona sigue vigenteSiga la pista: termine el otro límite, quite las pantallas individuales o revoque los clientes de servicio nombrados
guest_not_allowed403Una invitación, su aceptación o una vinculación de grupo añade un invitado que la política de invitados de la organización no admitePida a un administrador de la organización que cambie la política de invitados, o invite una dirección que esta admita
library_no_screens409Un proyecto con pantallas se convierte en la Biblioteca, o se añade una pantalla a la BibliotecaElija como Biblioteca un proyecto sin pantallas y vincule las pantallas a otro proyecto

Un cambio protegido que se acepta responde 202 con status: pending_review y la revisión, la misma respuesta que recibe un agente con acceso Proponer. Sígala con screenrig reviews show ID.

Auditoría

Cada cambio es un evento del registro del proyecto, escrito en la transacción que hace el cambio:

EventoCuándo
project.member_screen_scope_changedEl alcance de un miembro se define, cambia o termina
agent.screen_scope_changedEl alcance de un agente se define, cambia o termina
screen.folder_protection_changedUna carpeta está protegida o no protegida
campaign.reserved_changedUna campaña está reservada o no reservada

Las revisiones escriben los eventos review.* habituales, y la persona que aprueba es el actor de lo que aplica una revisión.

API

Las rutas del propietario usan la sesión del panel.

RutaQué hace
PUT y DELETE /api/members/{user_id}/screen-scopeDefinir o terminar el alcance de un miembro
PUT y DELETE /api/agents/{id}/screen-scopeDefinir o terminar el alcance de un agente
PATCH /api/screen-folders/{id} con protectedProteger una carpeta, enviado solo
POST /api/campaigns y PATCH /api/campaigns/{id} con reservedReservar una campaña

Las rutas de la organización aceptan la sesión del panel de un administrador. Los agentes y las credenciales portadoras no tienen ninguna.

RutaQué hace
POST y GET /api/organizations/{org_id}/member-invitationsInvitar a miembros y listar las invitaciones
DELETE /api/organizations/{org_id}/members/{user_id}Eliminar a un miembro
PUT /api/organizations/{org_id}/guest-policyDefinir la política de invitados
PUT /api/organizations/{org_id}/libraryEstablecer o quitar el proyecto Biblioteca
POST /api/organizations/{org_id}/projects/{project_id}/accessUnirse a un proyecto
PUT /api/organizations/{org_id}/projects/{project_id}/ownerCambiar el propietario de un proyecto
DELETE /api/organizations/{org_id}/projects/{project_id}/members/{user_id}Eliminar a un miembro del proyecto

La referencia de la API lista cada solicitud, respuesta y problema. Los problemas están en los tipos de problema.