@@ -497,6 +497,11 @@ public ApiResponse createObject(
497497 assignDefaultUserRole (user ); // Add Topcoder User role if the user was auto-activated
498498 }
499499
500+ // Add business user role if needed
501+ if (user .getRegSource ().matches ("tcBusiness" )) {
502+ assignRoleByName ("Business User" , user );
503+ }
504+
500505 // publish event
501506 publishUserEvent ("event.user.created" , user );
502507
@@ -1672,4 +1677,26 @@ private void assignDefaultUserRole(User user) {
16721677 logger .error ("Unable to assign default user role to user " + user .getId (), e );
16731678 }
16741679 }
1680+
1681+ private void assignRoleByName (String roleName , User user ) {
1682+ Role role = roleDao .findRoleByName (roleName );
1683+ if (role == null ) {
1684+ logger .error ("No role found for '" + roleName + "'" );
1685+ throw new IllegalStateException ("Unable to assign user role " + roleName );
1686+ }
1687+ long roleId = Long .parseLong (role .getId ().toString ());
1688+
1689+ try {
1690+ long userId = Long .parseLong (user .getId ().toString ());
1691+ int rows = roleDao .assignRole (roleId , userId , userId );
1692+
1693+ if (rows == 0 ) {
1694+ logger .error ("No assignment row created when assigning '" + roleName + "' role to user " + userId );
1695+ } else if (logger .isDebugEnabled ()) {
1696+ logger .debug (String .format ("Created role assignment for user %d" , userId ));
1697+ }
1698+ } catch (Exception e ) {
1699+ logger .error ("Unable to assign '" + roleName + "' role to user " + user .getId (), e );
1700+ }
1701+ }
16751702}
0 commit comments