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:
Loading video...
When the owner of an organization transfers the ownership to another member, the owner's account will automatically be turned into an Admin
account.
You will need to update the code if you have added custom roles, eg. if you replaced the "Admin" role with another one.
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!