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.
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.
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/membersy su formulario en/team/members/create. Las identidades que ofrece el formulario sonconfig/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 deTEAM_INVITATION_MODE:approval_required(por invitación, el predeterminado) oauto_provision(cuenta creada al momento). Una invitación es una filaTeamInvitation, que se compara por correo y se usa conUser::acceptTeamInvitations()(App\Traits\HasTeam), que corre cuando se crea el usuario (UserObserver::created) y en cadaIlluminate\Auth\Events\Login(App\Listeners\AcceptPendingTeamInvitations), salvo mientras un administrador simula al usuario. Una invitación usada se elimina. Una cuyo equipo eswithout_plan(planes encendidos y sin suscripcióndefaultactiva) sigue pendiente; al iniciar sesión los nombres de esos equipos van a la sesión, yApp\View\Composers\UnavailableTeamInvitationNoticesmuestra un aviso por equipo. - El límite del plan es el límite
users, que revisateam()->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 membersydelete membersen el guardteam. El propietario los pasa por la política sin tenerlos. El rol predeterminado esteam_default_roleenconfig/app.php,usertal como viene, con sus permisos enteam_roles. - Las dos tablas se paginan por separado: los miembros con
page, las invitaciones coninvitationsPage, y los enlaces de cada lista conservan la página de la otra. La tabla de invitaciones se dibuja sólo coninvitation_mode=approval_required. - Abrir el diálogo de edición revisa
update membersotra vez al montarse, y rechaza un equipo distinto al de la pantalla. Un miembro nuevo recibeteam_default_rolea través deUserTeamObserver, que después regresa el alcance de permisos a0. - Qué se envía:
App\Notifications\Members\AddedToTeamNotificationyApp\Notifications\Members\RemovedToTeamNotificationpasan por el sistema de notificaciones de la base (Envía notificaciones en el sitio de la base), por los canales que eligechannelNotifications(): la base de datos siempre, el correo cuando elsend_mailde la persona está encendido, WebPush cuando tiene una suscripción push.UserTeamObserverenvía la primera sólo mientras hay alguien con sesión iniciada, y nunca al creador del equipo;App\Mail\Member\InvitedToTeamEmailse envía enapproval_requiredyApp\Mail\Member\ProvisionedToTeamEmailenauto_provision.

