# AccessManager

## View Methods

### whiteListMode (KYC)

```solidity
function whiteListMode(address _vaultAddress) external view returns (bool isEnabled)
```

Returns the KYC mode status of a vault.

**Call Parameters:**

|                | Type    | Description          |
| -------------- | ------- | -------------------- |
| \_vaultAddress | address | address of the vault |

**Return Value:**

| Type | Description                       |
| ---- | --------------------------------- |
| bool | `true` if the KYC mode is enabled |

### permissionLessMode

```solidity
function permissionLessMode() external view returns (bool isEnabled)
```

Returns the status of the permission-less mode.&#x20;

**Return Value:**

| Type | Description                                   |
| ---- | --------------------------------------------- |
| bool | `true` if the permission-less mode is enabled |

### getUserAccessInfo

```solidity
function getUserAccessInfo(address _user)
    external
    view
    returns (
        uint256 ownedTokenID,
        bool isUserKYC,
        IKYCToken.TokenParameters memory _tokenParameters
    )
```

Returns the KYC information for a given user.

**Call Parameters:**

<table><thead><tr><th width="214">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>_user</code></td><td>address</td><td>address of the user</td></tr></tbody></table>

**Return Values:**

<table><thead><tr><th width="214">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>ownedTokenID</code></td><td>uint256</td><td>KYC token ID</td></tr><tr><td><code>isUserKYC</code></td><td>bool</td><td>KYC state of the user</td></tr><tr><td><code>_tokenParameters</code></td><td>IKYCToken.TokenParameters</td><td>KYC information of the user</td></tr></tbody></table>

### isWhiteListed

```solidity
function isWhiteListed(address _vault, address _user) 
    public view returns (bool)
```

Returns the whitelist status of a given user.

**Call Parameters:**

| Name     | Type    | Description               |
| -------- | ------- | ------------------------- |
| `_vault` | address | address of a vault        |
| `_user`  | address | address of a vault's user |

**Return Value:**

| Type | Description                          |
| ---- | ------------------------------------ |
| bool | `true` if the address is whitelisted |

## Write Methods

### SetPermissionLessMode

```solidity
function setPermissionLessMode(bool _status) external
```

Settles the permission-less mode.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name      | Type | Description                               |
| --------- | ---- | ----------------------------------------- |
| `_status` | bool | `true` to enable the permission-less mode |

### SetWhiteListMode (KYC)

```solidity
function setWhiteListMode(address _vault, bool _status) external
```

Settles the KYC mode of a vault.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name      | Type    | Description                   |
| --------- | ------- | ----------------------------- |
| `_vault`  | address | address of a vault            |
| `_status` | bool    | `true` to enable the KYC mode |

### SetKYCTokenImp

```solidity
function setKYCTokenImp(address _newKYCTokenImp) external
```

Settles the implementation address of the KYCToken.&#x20;

{% hint style="info" %}
This method can only be called by address with **DEFAULT\_ADMIN\_ROLE**.
{% endhint %}

**Call Parameters:**

| Name              | Type    | Description                                                   |
| ----------------- | ------- | ------------------------------------------------------------- |
| `_newKYCTokenImp` | address | the address of the contract containing the new implementation |
