I've noticed that in DotNetNuke\Library\Components\Security\Roles\RoleController.vb Sub AddUserRole has the following code:
Dim objUserRole As UserRoleInfo = GetUserRole(PortalID, UserId, RoleId)
If objUserRole Is Nothing Then
'Code to AddUserRole omitted for brevity
Else
DataProvider.Instance().UpdateUserRole(objUserRole.UserRoleID, ExpiryDate)
End If
Note that UpdateUserRole doesn't have UserId parameter and sets ExpiryDate for all users in specified role.
Is it a bug?