---
title: "Update Access"
method: PUT
path: "/api/new_mdm/update_access"
tags: ["MDM NEW"]
---

# Update Access

`PUT /api/new_mdm/update_access`

**Function**: `update_access`
**Type**: API Endpoint (PUT)

**Purpose**:
This endpoint updates the access rights of a user for a specific application.

**URL**:
`PUT /api/new_mdm/update_access`

**Request Parameters**:
- `request` (Request): The request object.
- `update_request` (UpdateAccessRequest): An object containing details about the user, menu, and table access to be updated.
- `Customer_Key` (Header, required): A base64 encoded string containing `lscode` and `firmcode`.
- `User_Code` (Header, required): A base64 encoded string containing the user code.
- `App_Code` (Header, optional): A base64 encoded string containing the application code.
- `db` (Session): The database session, obtained via dependency injection.

**Process**:
1. Decodes the `Customer_Key` to extract `lscode` and `firmcode`.
2. Validates the `User_Code`.
3. Updates the user details (email, mobile).
4. Updates the menu access.
5. Updates the table access.
6. Fetches the updated user details, menu access, and table access.
7. Constructs and returns a JSON response detailing the updated access rights.

**Response**:
- A JSON object containing the updated user details, menu access, and table access.
- Indicates success or failure for each step, including any errors encountered.

**Exceptions**:
- Handles exceptions related to database operations and invalid customer key formats, providing appropriate error messages.

## Headers

- `Customer-Key` string, required
- `User-Code` string, required
- `App-Code` string, required

## Request body

- UpdateAccessRequest
  - `user` UserResponse, required
    - `first_name` string, required
    - `last_name` string, required
    - `email` string, required
    - `mobile` string, required
    - `user_group_code` string, required
    - `user_role` string, nullable
    - `active` boolean, required
    - `access_mdm` integer, nullable
  - `menu_access` MenuAccessParentChild[], required
    - `parent` MenuAccessResponse, required
      - `menu_name` string, required
      - `access` integer, required
    - `children` MenuAccessResponse[], nullable
      - `menu_name` string, required
      - `access` integer, required
  - `table_access` TableAccess[], required
    - `table_name` string, required
    - `access` integer, required
    - `upload_download_access` integer, required

## Response `200`

Successful Response

- ExistingUser
  - `user` UserResponse, required
    - `first_name` string, required
    - `last_name` string, required
    - `email` string, required
    - `mobile` string, required
    - `user_group_code` string, required
    - `user_role` string, nullable
    - `active` boolean, required
    - `access_mdm` integer, nullable
  - `menu_access` MenuAccessParentChild[], required
    - `parent` MenuAccessResponse, required
      - `menu_name` string, required
      - `access` integer, required
    - `children` MenuAccessResponse[], nullable
      - `menu_name` string, required
      - `access` integer, required
  - `user_firm_details` FirmDetail[], required
    - `lscode` string, required
    - `Firm_Name` string, required
    - `firm_code` string, required
    - `firm_logo` string, required
  - `user_subscription_details` SubscriptionDetail[], required
    - `lscode` string, required
    - `eligibleDays` integer, required
    - `eligibleGraceDays` integer, required
    - `subscriptionStatus` integer, required
    - `SubcriptionStart` string, required
    - `SubcriptionExpiry` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/leapsurgebi/apis/leapsurgeapi.md) · [All operations](https://skmtc.dev/leapsurgebi/apis/leapsurgeapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/leapsurgebi/leapsurgeapi/revisions/5a6b1464bfeb/schema)
