# v0.2.0: Transferring Ownership of an organization

> The version 0.2.0 adds the ability to transfer the ownership of an organization to another member

*Published: 2022-09-05*
*Canonical: https://makerkit.dev/blog/changelog/update-0.2.0*

---

The newly released version 0.2.0 adds the ability for the owners of an organization to transfer ownership to another member of the organization.

Check out the video below for a quick demo:

{% video src="/assets/images/posts/transfer-ownership.mp4" /%}

When the owner of an organization transfers the ownership to another member, the owner's account will automatically be turned into an `Admin` account.

{% alert type="warning" %}
You will need to update the code if you have added custom roles, eg. if you replaced the "Admin" role with another one.
{% /alert %}

Furthermore, I strengthened some checks around the ability to remove members from an organization and update a member's role:

```tsx
function assertUserCanUpdateMember(params: {
  organization: Organization;
  currentUserId: string;
  targetUserId: string;
}) {
  const members = params.organization.members;
  const currentUser = members[params.currentUserId];
  const targetUser = members[params.targetUserId];

  if (!targetUser) {
    return throwNotFoundException(`Target member was not found`);
  }

  if (!currentUser) {
    return throwNotFoundException(`Current member was not found`);
  }

  if (currentUser.role <= targetUser.role) {
    return throwUnauthorizedException(
      `Current member does not have a greater role than target member`
    );
  }
}
```

The function above can be reused when a user is performing an action that affects another user. 

Generally, we use user roles hierarchically, which means if a role is equal to or smaller than another, then it cannot perform an action that affects this user's permissions.


To update your repository, run the following command:

```
git pull upstream main
```

If you encounter too many conflicts while updating, please [feel free to reach out](/contact)!
