# Record Editing by Users

The feature is available on [List Details](https://softr.gitbook.io/softr-documentation/building-blocks/listing-details), [List](https://softr.gitbook.io/softr-documentation/building-blocks/listings), and [Table](https://softr.gitbook.io/softr-documentation/building-blocks/table) blocks for editing Airtable data.

{% hint style="success" %}
Prior to enabling editing on a block, you need to configure [Edit Permissions](https://softr.gitbook.io/softr-documentation/studio/application-settings/edit-permission) to specify which **user groups** can edit which **Airtable bases/table**.
{% endhint %}

To enable editing on a given block, you need to navigate to the **Edit** tab in block settings and enable **Allow user to edit.** Next, you'll need to add the [user groups](https://softr.gitbook.io/softr-documentation/memberships/block-visibility/payment-and-other-conditions) for which you want to enable it.

{% hint style="info" %}
Only **Business** customers can add custom user groups. For the **Professional** plan, the option to add custom user groups will be disabled, and the general **Logged-In Users** group will be set.
{% endhint %}

That's it. Now all the logged-in users that are granted the permission to edit the block will see an edit icon on the block.&#x20;

![Edit Icon](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MhxTT1TzDmKZV_iRT7W%2F-MhxUy3lXi6YYpyL1PNh%2Fedit-icon-b.png?alt=media\&token=88228fc8-adfa-403f-ba33-dbe329d3bd35)

Clicking the icon will open a pop-up with all the fields that are subject to editing, and the user will be able to make the necessary changes and hit **Save** to apply them and update data in Airtable.

{% hint style="success" %}
It's also possible to edit [Linked Records](https://www.softr.io/learn/airtable/airtable-glossary#records-fields) from them selected table. See an example [below](https://docs.softr.io/building-blocks/block-editing-by-users#example-editing-the-task-project-linked-records).
{% endhint %}

![Edit pop-up](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MhxTT1TzDmKZV_iRT7W%2F-MhxVABgXgOad9r15hYo%2Fedit-record-b.png?alt=media\&token=da3c0fda-e7cd-4d3d-b7e2-684487d91524)

Now, let's consider an example to give you a better understanding of how permissions and editing works.

## Example: Changing the Task Status

Let's say you have a list of tasks, and each task is assigned to a particular user in your Softr app. Further on, you want the assignees to be able to log in and change the status of their tasks (e.g. from "In Progress" to "Done"), not being able to modify other users' tasks in any way. So, let's see how that can be done.

### Adding a Permission Rule

First, we are going to create a permission rule for our **Task List** table, where users can only edit the **Status** field. We will also apply a record-level permission, so that each user can only edit his/her records (tasks he/she is assigned to). See below.

![Adding a permission rule for task Status change](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MhxWxAKCLQ4BjPTLBNi%2F-MhxXUoW2DA5vLd-eygz%2Fadding-status-permission.gif?alt=media\&token=39c3488f-5059-4d7d-9aae-e11f1cb9fbc9)

Lastly, on the List Details block with task details, we are going to enable editing for logged-in users.&#x20;

That's it. Now when the user logs in and opens his task details from the task list, he will be able to modify the **Status** of the task as shown below. Please, note that when the user opens a task not assigned to him, the **Edit** icon is not there thanks to the record-level permission we had defined earlier.

![User changing the status of his task](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MhxbvPfjQpEDuwGlb0I%2F-Mhxd444xcbZDKCvLg0Q%2Fstatus-change.gif?alt=media\&token=16c46b3f-2973-486b-8a82-808711930787)

## Example: Editing the Task Project (Linked Records)

Let's say we have a list of tasks, and there's a Project column that shows which Project the task belongs to. This is a field with [Linked Records](https://www.softr.io/learn/airtable/airtable-glossary#records-fields) that is linked from the Projects table.&#x20;

![Project field](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MjtnykawcFUJQAKqOnd%2F-Mjtp6K5lS0e58nTokbM%2Ftask-list-b.png?alt=media\&token=a322b3e5-4ed5-4613-aede-e907e7995a3a)

**Linked Records** editing is configured similar to other fields. You just need to enable editing for that particular field in [Edit Permissions](https://softr.gitbook.io/softr-documentation/studio/application-settings/edit-permission) as shown below.

![Enabling editing for the Project field](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-MjtnykawcFUJQAKqOnd%2F-Mjtpo-KuMuygPM6dI-G%2Fproject-editing-b.png?alt=media\&token=4fc286fd-3eb3-438a-9ff9-39928e6dcc65)

The process of editing the field by the user is shown in the following GIF.

![Editing linked records](https://3426011356-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0NiyhsmXAcV5u1c6XK%2F-Mjtr7QAdqNqBtxjZSnV%2F-Mjtr93HwrXPtfbIhtkI%2Flinked-records-editing.gif?alt=media\&token=b2dbb838-7689-49ce-898f-c54738eedcb6)
