You can take any action (open a modal, make an HTTP API call, redirect to another page... etc) by writing your custom code. You can also access the current entity in your code.
## How to Set Up
In this example, we will add a "Click Me!" action and alert the current row's `userName` in the user management page of the [Identity Module](../../Modules/Identity.md).
### Step 1. Create Entity Action Contributors
The following code prepares a constant named `identityEntityActionContributors`, ready to be imported and used in your root module:
```ts
// src/app/entity-action-contributors.ts
import { eIdentityComponents, IdentityEntityActionContributors } from '@abp/ng.identity';
import { IdentityUserDto } from '@abp/ng.identity/proxy';
import { EntityAction, EntityActionList } from '@abp/ng.theme.shared/extensions';
const alertUserName = new EntityAction
1. Create a folder at this path: `src/app/identity-extended`
2. Add an entity action similar to this:
```js
// src/app/identity-extended/entity-action-contributors.ts
import {
eIdentityComponents,
IdentityEntityActionContributors,
IdentityUserDto,
} from '@abp/ng.identity';
import { EntityAction, EntityActionList } from '@abp/ng.theme.shared/extensions';
import { IdentityExtendedComponent } from './identity-extended.component';
const quickViewAction = new EntityAction| {%{{{ 'AbpIdentity::DisplayName:Name' | abpLocalization }}}%} | {%{{{ user.name }}}%} |
|---|---|
| {%{{{ 'AbpIdentity::DisplayName:Surname' | abpLocalization }}}%} | {%{{{ user.surname }}}%} |
| {%{{{ 'AbpIdentity::EmailAddress' | abpLocalization }}}%} | {%{{{ user.email }}}%} |
| {%{{{ 'AbpIdentity::PhoneNumber' | abpLocalization }}}%} | {%{{{ user.phoneNumber }}}%} |