@@ -197,6 +197,9 @@ export class CreateUserCommand extends SfCommand<CreateUserOutput> {
197197 } else if ( key . toLowerCase ( ) === 'profilename' ) {
198198 // @ts -expect-error standardize profileName casing
199199 defaultFields [ 'profileName' ] = this . varargs [ key ] ;
200+ } else if ( key . toLowerCase ( ) === 'roledevelopername' ) {
201+ // @ts -expect-error standardize roleDeveloperName casing
202+ defaultFields [ 'roleDeveloperName' ] = this . varargs [ key ] ;
200203 } else {
201204 // @ts -expect-error all other varargs are left "as is"
202205 defaultFields [ lowerFirstLetter ( key ) ] = this . varargs [ key ] ;
@@ -220,6 +223,18 @@ export class CreateUserCommand extends SfCommand<CreateUserOutput> {
220223 defaultFields . profileId = profile . Id ;
221224 }
222225
226+ // @ts -expect-error check if "roleDeveloperName" was passed, this needs to become a userRoleId before calling User.create
227+ if ( defaultFields [ 'roleDeveloperName' ] ) {
228+ // @ts -expect-error roleDeveloperName is not a valid field on UserFields
229+ const devName = defaultFields [ 'roleDeveloperName' ] as string ;
230+ logger . debug ( `Querying org for user role name [${ devName } ]` ) ;
231+ const userRole = await this . flags [ 'target-org' ]
232+ . getConnection ( this . flags [ 'api-version' ] )
233+ . singleRecordQuery < { Id : string } > ( `SELECT id FROM userrole WHERE developername='${ devName } '` ) ;
234+ // @ts -expect-error userRoleId is an optional field therefore not defined on UserFields
235+ defaultFields [ 'userRoleId' ] = userRole . Id ;
236+ }
237+
223238 return defaultFields ;
224239 }
225240
@@ -280,7 +295,7 @@ const lowerFirstLetter = (word: string): string => word[0].toLowerCase() + word.
280295 * @private
281296 */
282297const stripInvalidAPIFields = ( fields : UserFields & Dictionary < string > ) : UserFields =>
283- omit ( fields , [ 'permsets' , 'generatepassword' , 'generatePassword' , 'profileName' ] ) ;
298+ omit ( fields , [ 'permsets' , 'generatepassword' , 'generatePassword' , 'profileName' , 'roleDeveloperName' ] ) ;
284299
285300const getNewUserAuthInfo = async (
286301 targetOrgUser : User ,
0 commit comments