API de User

Vision General

La API de User es para gestionar cuentas de usuario de Fess. Puede operar creacion, actualizacion, eliminacion y configuracion de permisos de usuarios.

URL Base

/api/admin/user

Lista de Endpoints

Metodo Ruta Descripcion
GET/PUT /settings Obtener lista de usuarios
GET /setting/{id} Obtener usuario
POST /setting Crear usuario
PUT /setting Actualizar usuario
DELETE /setting/{id} Eliminar usuario

Obtener Lista de Usuarios

Solicitud

GET /api/admin/user/settings
PUT /api/admin/user/settings

Parametros

Parametro Tipo Requerido Descripcion
size Integer No Numero de elementos por pagina (predeterminado: 20)
page Integer No Numero de pagina (comienza en 0)

Respuesta

{
  "response": {
    "status": 0,
    "settings": [
      {
        "id": "user_id_1",
        "name": "admin",
        "surname": "Administrator",
        "givenName": "System",
        "mail": "admin@example.com",
        "roles": ["admin"],
        "groups": []
      }
    ],
    "total": 10
  }
}

Obtener Usuario

Solicitud

GET /api/admin/user/setting/{id}

Respuesta

{
  "response": {
    "status": 0,
    "setting": {
      "id": "user_id_1",
      "name": "admin",
      "surname": "Administrator",
      "givenName": "System",
      "mail": "admin@example.com",
      "telephoneNumber": "",
      "homePhone": "",
      "homePostalAddress": "",
      "labeledUri": "",
      "roomNumber": "",
      "description": "",
      "title": "",
      "pager": "",
      "street": "",
      "postalCode": "",
      "physicalDeliveryOfficeName": "",
      "destinationIndicator": "",
      "internationaliSDNNumber": "",
      "state": "",
      "employeeNumber": "",
      "facsimileTelephoneNumber": "",
      "postOfficeBox": "",
      "initials": "",
      "carLicense": "",
      "mobile": "",
      "postalAddress": "",
      "city": "",
      "teletexTerminalIdentifier": "",
      "x121Address": "",
      "businessCategory": "",
      "registeredAddress": "",
      "displayName": "",
      "preferredLanguage": "",
      "departmentNumber": "",
      "uidNumber": "",
      "gidNumber": "",
      "homeDirectory": "",
      "roles": ["admin"],
      "groups": []
    }
  }
}

Crear Usuario

Solicitud

POST /api/admin/user/setting
Content-Type: application/json

Cuerpo de la Solicitud

{
  "name": "testuser",
  "password": "securepassword",
  "surname": "Test",
  "givenName": "User",
  "mail": "testuser@example.com",
  "roles": ["user"],
  "groups": ["group_id_1"]
}

Descripcion de Campos

Campo Requerido Descripcion
name Si Nombre de usuario (ID de inicio de sesion)
password Si Contrasena
surname No Apellido
givenName No Nombre
mail No Direccion de correo electronico
telephoneNumber No Numero de telefono
roles No Array de IDs de roles
groups No Array de IDs de grupos

Respuesta

{
  "response": {
    "status": 0,
    "id": "new_user_id",
    "created": true
  }
}

Actualizar Usuario

Solicitud

PUT /api/admin/user/setting
Content-Type: application/json

Cuerpo de la Solicitud

{
  "id": "existing_user_id",
  "name": "testuser",
  "password": "newpassword",
  "surname": "Test",
  "givenName": "User Updated",
  "mail": "testuser.updated@example.com",
  "roles": ["user", "editor"],
  "groups": ["group_id_1", "group_id_2"],
  "versionNo": 1
}

Respuesta

{
  "response": {
    "status": 0,
    "id": "existing_user_id",
    "created": false
  }
}

Eliminar Usuario

Solicitud

DELETE /api/admin/user/setting/{id}

Respuesta

{
  "response": {
    "status": 0,
    "id": "deleted_user_id",
    "created": false
  }
}

Ejemplos de Uso

Crear Nuevo Usuario

curl -X POST "http://localhost:8080/api/admin/user/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "john.doe",
       "password": "SecureP@ss123",
       "surname": "Doe",
       "givenName": "John",
       "mail": "john.doe@example.com",
       "roles": ["user"],
       "groups": []
     }'

Cambiar Roles de Usuario

curl -X PUT "http://localhost:8080/api/admin/user/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "id": "user_id_123",
       "name": "john.doe",
       "roles": ["user", "editor", "admin"],
       "versionNo": 1
     }'

Informacion de Referencia