This module allows site administrators to grant specific roles the authority to assign selected roles to users, without them needing the administer permissions permission.
For each role, Role Delegation provides a new assign ROLE role permission to allow the assignment of that role.
The module also adds an assign all roles permission. Enabling this permission for a role is a convenient way to allow the assignment of any other role without having to check all the assign ROLE role permissions on the permissions page.
Drupal 8
If an administrator has one of the the assign {{ role }} role permissions or the assign all roles permission, a role assignment widget gets displayed in the account creation or editing form, and bulk add/remove role operations become available on the user administration page.