| 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 FaseLos 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 adminyadmin.
{
"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 /usersadminextends QueryFilters| Filter | Description |
|---|---|
type=int |
Filtra por tipo de usuario |
search=string |
Busca a traves de name y email |
enabled |
Obtiene los usuarios deshabilitados |
POST /usersadmin{
"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}adminPATCH /users/{id}/emailuser relacionado{
"new_email": "required|email",
"password": "required|string" // user current password
}
PATCH /users/{id}/passwordusuario 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-pictureadminuser 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-updateadminnew_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
}