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

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:

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

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

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!