Cargando…

Esto está tardando más de lo esperado.

Miembros e invitaciones

Cómo se agrega una persona a un equipo por correo, teléfono o nombre de usuario, qué pasa cuando todavía no tiene cuenta y cómo se cambian los roles desde la lista.

Un equipo crece desde Miembros, en el menú del equipo. Esta guía cubre la lista de miembros, el formulario que agrega a alguien, qué pasa con una persona que todavía no tiene cuenta y los avisos que envía cada paso. Con qué datos se puede identificar a una persona en el formulario lo decide cómo está configurado el inicio de sesión en tu producto: ve Configura el inicio de sesión y el registro.

La lista de miembros

Miembros muestra dos tablas:

  • Miembros, con las columnas Nombre, Correo electrónico, Rol y Creado, la fecha en que se creó la cuenta de la persona. Desde cada fila, un miembro que puede cambiar roles cambia el rol, y uno que puede quitar miembros saca a la persona del equipo.
  • Invitaciones, con el número de la invitación, el correo y la fecha, para las personas que fueron invitadas y todavía no entran al equipo. Un miembro que puede quitar miembros cancela una. Los productos que crean la cuenta al momento nunca dejan a nadie esperando, así que no muestran esta tabla.

Cada tabla tiene sus propias páginas: moverte por las invitaciones deja la lista de miembros en la página en que estaba, y al revés.

Quitar a un miembro lo saca del equipo y le envía un aviso, en su cuenta y por correo. Su cuenta queda intacta, igual que su lugar en cualquier otro equipo.

La lista de miembros de un equipo, con el rol de cada miembro

Agregar un miembro

Crear miembro abre el formulario. Pregunta primero cómo se identifica a la persona, con un botón por cada identidad que tu producto acepta, más Autodetectar, que lee lo que se escriba: una dirección es un correo, un número es un teléfono, cualquier otra cosa es un nombre de usuario. Cuando tu producto acepta una sola identidad, esa pregunta se salta y el formulario va directo a ella. Después pide la identidad, un rol de entre los roles del equipo y, cuando la persona todavía no existe, un nombre.

Lo que pasa al guardar depende de si una cuenta ya tiene esa identidad.

El formulario Crear miembro, que pregunta cómo se identifica la persona

La cuenta existe

La persona se agrega al equipo de inmediato, con el rol elegido en el formulario. Se le avisa en su cuenta y por correo, y el equipo aparece en su lista de equipos en su siguiente visita. Alguien que ya es miembro es rechazado con un mensaje.

La cuenta no existe

Tu producto funciona de una de dos maneras:

Cómo funciona tu producto Qué pasa
Por invitación La dirección recibe un correo con un enlace a la página de registro, con el correo ya puesto. La persona entra al equipo cuando se registra, con el rol que elegiste, y mientras tanto aparece en Invitaciones. Sólo un correo se puede invitar así: un teléfono o un nombre de usuario sin cuenta es rechazado con Las invitaciones por teléfono todavía no están disponibles.
Cuenta creada al momento La cuenta se crea de inmediato con el nombre escrito en el formulario y la identidad dada, y se agrega al equipo con el rol. Cuando la identidad es un correo, la persona recibe un enlace para poner una contraseña. Un teléfono recibe una cuenta pero no un correo, así que la persona inicia sesión con el código que llega a su teléfono. Nadie queda esperando.

Una invitación pendiente se usa cuando la persona se registra, y otra vez cada vez que inicia sesión. Una persona invitada por varios equipos entra a todos a la vez. Si un equipo no tiene un plan activo, su invitación espera: la persona ve Equipo no disponible por ahora, con Te invitaron a {equipo}, pero por ahora no está disponible. Te unirás la próxima vez que inicies sesión una vez que vuelva a estar disponible., y entra en un inicio de sesión posterior, cuando el equipo vuelve a tener plan.

El límite del plan

Los miembros y las invitaciones pendientes cuentan ambos contra el número de miembros que permite el plan del equipo. Cuando el equipo lo alcanza, el botón Crear miembro sigue en la lista de miembros pero deshabilitado, y un mensaje bajo el título dice Has alcanzado el número máximo de miembros permitido por tu suscripción. Por favor, mejora tu plan para añadir más miembros.; un equipo sin plan está en su límite desde el inicio. El formulario también se niega con el mismo mensaje al guardar una invitación. Un miembro que no puede agregar miembros no ve el botón. Ve Planes y cobros del equipo para saber dónde se define el límite.

Cambiar el rol de un miembro

El control Editar en la fila de un miembro abre un diálogo con los roles del equipo. Guardar cambia el rol anterior por el elegido: una persona tiene exactamente un rol por equipo. La fila del propietario no tiene control de edición: el propietario conserva el rol de propietario mientras el equipo exista.

Quién puede hacerlo

Cada acción se le da a un rol en la pantalla Roles del equipo, en la fila Miembros. Esa pantalla está en el menú del equipo bajo Equipo, justo después de Miembros.

Acción Qué necesita el rol
Ver los miembros y las invitaciones Miembros: Ver
Agregar un miembro o invitar uno Miembros: Crear
Cambiar el rol de un miembro Miembros: Actualizar
Quitar un miembro o cancelar una invitación Miembros: Eliminar

El propietario puede hacer las cuatro sin que se las den. El rol que recibe un miembro nuevo, Usuario tal como viene el producto, sólo tiene Miembros: Ver. Ve Roles y permisos del equipo para cambiar eso.

Qué se envía

Cuándo A quién se le avisa Cómo
Agregado al equipo Al miembro nuevo En su cuenta, por correo y como notificación del navegador
Quitado del equipo Al miembro En su cuenta, por correo y como notificación del navegador
Invitado a un equipo A la dirección invitada Por correo, con un enlace para registrarse
Se le creó una cuenta A la cuenta nueva Por correo, con un enlace para poner una contraseña

Los dos primeros siguen las preferencias de notificación de cada persona, así que quien apagó los avisos por correo los recibe sólo en su cuenta, y sólo quien encendió las notificaciones del navegador en un dispositivo las recibe ahí.

Para desarrolladores

  • La pantalla de miembros vive en /team/members y su formulario en /team/members/create. Las identidades que ofrece el formulario son config/auth.php → login_identities. La pantalla Roles del equipo es /team/roles.
  • Cuál de los dos comportamientos aplica lo decide config/teams.php → invitation_mode, leído de TEAM_INVITATION_MODE: approval_required (por invitación, el predeterminado) o auto_provision (cuenta creada al momento). Una invitación es una fila TeamInvitation, que se compara por correo y se usa con User::acceptTeamInvitations() (App\Traits\HasTeam), que corre cuando se crea el usuario (UserObserver::created) y en cada Illuminate\Auth\Events\Login (App\Listeners\AcceptPendingTeamInvitations), salvo mientras un administrador simula al usuario. Una invitación usada se elimina. Una cuyo equipo es without_plan (planes encendidos y sin suscripción default activa) sigue pendiente; al iniciar sesión los nombres de esos equipos van a la sesión, y App\View\Composers\UnavailableTeamInvitationNotices muestra un aviso por equipo.
  • El límite del plan es el límite users, que revisa team()->reachedLimit('users') tanto la lista como de nuevo el formulario al guardar, así que un enlace guardado al formulario no pasa el límite.
  • Las cuatro acciones son los permisos retrieve members, create members, update members y delete members en el guard team. El propietario los pasa por la política sin tenerlos. El rol predeterminado es team_default_role en config/app.php, user tal como viene, con sus permisos en team_roles.
  • Las dos tablas se paginan por separado: los miembros con page, las invitaciones con invitationsPage, y los enlaces de cada lista conservan la página de la otra. La tabla de invitaciones se dibuja sólo con invitation_mode = approval_required.
  • Abrir el diálogo de edición revisa update members otra vez al montarse, y rechaza un equipo distinto al de la pantalla. Un miembro nuevo recibe team_default_role a través de UserTeamObserver, que después regresa el alcance de permisos a 0.
  • Qué se envía: App\Notifications\Members\AddedToTeamNotification y App\Notifications\Members\RemovedToTeamNotification pasan por el sistema de notificaciones de la base (Envía notificaciones en el sitio de la base), por los canales que elige channelNotifications(): la base de datos siempre, el correo cuando el send_mail de la persona está encendido, WebPush cuando tiene una suscripción push. UserTeamObserver envía la primera sólo mientras hay alguien con sesión iniciada, y nunca al creador del equipo; App\Mail\Member\InvitedToTeamEmail se envía en approval_required y App\Mail\Member\ProvisionedToTeamEmail en auto_provision.
Volver