Method | URI | Action |
---|---|---|
GET |
/users |
index |
GET |
/users/{id} |
show |
POST |
/users |
store |
PATCH |
/users/{id} |
update |
DELETE |
/users/{id} |
soft delete |
PATCH |
/users/{id}/email |
update email |
PATCH |
/users/{id}/password |
update password |
POST |
/users/{id}/profile-picture |
update profile_picture |
POST |
/users/bulk-password-update |
custom update |
{
"id": 1,
"type": 2,
"name": "student",
"email": "student@idc.com",
"enabled": true,
"permissions": {
"create": false,
"read": true,
"update": false,
"delete": false
},
"profile_picture": null, // Se actualiza cuando se sube una foto de perfil
"email_verified_at": null, // Se actualiza cuando se confirma la cuenta
"last_login_at": null, // Se actualiza cada vez que el usuario realizar el /login
"confirmation_token": null, // Esto sirve para los correos de autenticacion que necesiten un token de confirmación
"created_at": "2020-03-03 01:45:40",
"updated_at": "2020-03-03 01:45:40",
"deleted_at": null
}
Type | Value |
---|---|
Student |
1 |
Teacher |
2 |
Coordinator |
3 |
Low Admin |
4 |
Admin |
5 |
Primera Fase
Los permisos indican que acciones CRUD
puede un usuario realizar en los modulos que puedan acceder.
Permitiendo siempre READ
por defecto. Los modulos que tenga permitido acceder ya depende del type
del usuario.
Cuando un usuario es creado se le aplica permisos por defecto dependiendo del tipo, pero estos se puede modificar libremente
luego con el metodo update
.
{info} No se le puede actualizar permisos a
low admin
yadmin
.
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": true
}
}
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": false
}
}
{
"permissions": {
"create": false,
"read": true,
"update": false,
"delete": false
}
}
GET /users
admin
extends
QueryFiltersFilter | Description |
---|---|
type=int |
Filtra por tipo de usuario |
search=string |
Busca a traves de name y email |
enabled |
Obtiene los usuarios deshabilitados |
POST /users
admin
{
"name": "required|string",
"email": "required|email|unique:users",
"type": "required|integer|in:4,5", // admin group types
"profile_picture": "image"
}
PATCH /users/{id}
admin
{
"name": "string",
"enabled": "boolean",
"permissions": { // only when target user is not admin or low admin. read permissions cannot be changed
"created": "boolean",
"update": "boolean",
"delete": "boolean"
},
"type": "integer|in:4,5" // only when target user is admin or low admin.
}
{primary} No se puede dejar el sistema sin administradores. Si se detecta que el target user es el último admin se negara la acción.
DELETE /users/{id}
admin
PATCH /users/{id}/email
user
relacionado{
"new_email": "required|email",
"password": "required|string" // user current password
}
PATCH /users/{id}/password
usuario
relacionado{
"password": "required|string", // user current password
"new_password": "required|string",
"new_password_confirmation": "required|string|same:new_password"
}
Sirve para cualquier tipo de usuario
POST /users/{id}/profile-picture
admin
user
relacionado{
"profile_picture": "required|image"
}
204
No ContentEsta acción ofrece 2 modos de interacción
Para cada usuario genera un token de password reset y le envia la notifiacion de Restaurar Contraseña
Para todos los usuarios seleccionados se actualiza su contraseña a la proveniente en new_password
A demás de eso se puede especificar un grupo de usuarios (de cualquier rol) o enviar el valor de ['*']
para seleccionar
a todos los usuarios existentes.
POST /users/bulk-password-update
admin
new_password
solo es requerido y utilizado cuando mode === 'force_update'
*
en array de _target_userids {
"target_users_ids": "required|array",
"target_users_ids.*": "integer", // aunque este marcado como integer si se detecta ['*'] pasara la validación
"mode": "required|string|in:send_email,force_update",
"new_password": "integer" // Solo requerido cuando mode === force_update
}