Component Lead cannot be assigned to user.

Yuan Tian March 5, 2017

Hello experts:

I am facing a problem during configure my Jira system. Senario like belwo:

Jira Softwware 7.2.4

1. A project with several components and each component has its component lead.
2. Component A has its component lead named Jack(user name)
3. For some reason, user Jack changed his account and modified his name to Tom. component lead auto changed the component lead name to Tom.(It's perfect!)
4. Changed component A's component lead to Mary.
5. Problem: When I want to set the component lead back to to Tom, the system refused with :"The user newDevGp1U10faf f does not exist." error.
6. I can see the Tom user with user management screen. I tried several actions: re-index Project/System, then re-start Jira service and reboot system. This problem cannot solve.
7. At last, I change the problem user Tom back to Jack. all things back to normal!

Please kingly confirm this, and, inform me if you need any symptoms. It's a kindly of busy.

Thank you!

Yuan Tian

4 answers

0 votes
D Johnson April 23, 2018

For anyone who wants to update the Component Lead using the REST API with Excel VBA see below (the first sub is in a standard module the rest are in a class module):

 

Sub JIRA_UpdateComponentLead()

    Dim myJIRA As New clsJIRA
    Dim componentID As String
    'Note you will need the component ID
   
    MsgBox "You will need the component ID. " & vbCrLf & "e.g. use http://yourJIRA:80/rest/api/2/project/yourPROJECT/components", vbExclamation

    With myJIRA
        .URL = InputBox("Enter Jira URL e.g. yourJIRA:80", "JIRA URL")
        .Protocol = InputBox("Enter protocol i.e. https:// or http://", Protocol, "http://")
        .UserName = InputBox("Enter JIRA Username for " & myURL, "Username")
        .Password = InputBox("Enter JIRA Password for " & myURL, "Password")
        .Project = InputBox("Enter JIRA Project Name for " & myURL, "Project")
        .Login
       
   
        componentID = InputBox("Enter JIRA ComponentID to change ")
       
        .RenameComponentLead componentID, InputBox("New Component Lead Login Name")

        .Logout
    End With

End Sub

Private oJiraAuth As MSXML2.ServerXMLHTTP60
Private oJiraService As MSXML2.ServerXMLHTTP60
Private sJIRAUserID As String
Private sJIRAPass As String
Private sURL As String
Private sCookie As String
Private sOutput As String
Private sStatus As String
Private sProtocol As String
Private sProject As String

Public Property Let Protocol(ByVal vNewValue As String)
   
    sProtocol = vNewValue
   
    'Default to HTTPs
    If sProtocol = "" Then
        sProtocol = "https://"
    End If
   
End Property
Public Property Let UserName(ByVal vNewValue As String)
    sJIRAUserID = vNewValue
End Property
Public Property Let Password(ByVal vNewValue As String)
    sJIRAPass = vNewValue
End Property
Public Property Let URL(ByVal vNewValue As String)
    sURL = vNewValue
End Property
Public Property Let Project(ByVal vNewValue As String)
    sURL = vNewValue
End Property

Public Function Login() As Boolean
   
    Login = False

    Set oJiraAuth = New MSXML2.ServerXMLHTTP60
    With oJiraAuth
        .Open "POST", sProtocol & sURL & "/rest/auth/1/session", False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Accept", "application/json"
        .send " {""username"" : """ & sJIRAUserID & """, ""password"" : """ & sJIRAPass & """}"
        sOutput = .responseText
        sCookie = "JSESSIONID=" & Mid(sOutput, 42, 32) & "; Path=/Jira"
    End With
   
    Set oJiraService = New MSXML2.ServerXMLHTTP60
    With oJiraService
        .Open "GET", sProtocol & sURL & "/rest/api/2/search?jql=project=" & sProject, False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Accept", "application/json"
        .setRequestHeader "Authorization", "Basic " & EncodeBase64(sJIRAUserID & ":" & sJIRAPass)
        .setRequestHeader "Set-Cookie", sCookie
        .send
        sOutput = .responseText
        sStatus = .Status & " | " & .statusText
    End With
   
    'sOutput  should contain all data in JSON format
    'next, you must use a JSON parser to get the desired format
   

End Function
    
Private Function EncodeBase64(srcTxt As String) As String
  Dim arrData() As Byte
  arrData = StrConv(srcTxt, vbFromUnicode)
  Dim objXML As MSXML2.DOMDocument60
  Dim objNode As MSXML2.IXMLDOMElement
 
  Set objXML = New MSXML2.DOMDocument60
  Set objNode = objXML.createElement("b64")
  objNode.DataType = "bin.base64"
  objNode.nodeTypedValue = arrData
 
  EncodeBase64 = objNode.Text

  Set objNode = Nothing
  Set objXML = Nothing
End Function

Public Function RenameComponentLead(sJIRAComponentID As String, sNewUser As String) As Boolean

    Dim sData As String
    Dim sAux As String
   
    sData = " { ""fields"" :

{ ""leadUserName"" : """ & sNewUser & """ }

} "
    sData = " { ""leadUserName"" : """ & sNewUser & """ }"
    With oJiraService
        .Open "PUT", "http://" & sURL & "/rest/api/2/component/" & sJIRAComponentID, False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Accept", "application/json"
        .setRequestHeader "Set-Cookie", sCookie
        .send sData
        sOutput = .responseText
        sStatus = .Status & " | " & .statusText
   
    End With
    MsgBox sStatus, vbInformation, "Status"
End Function

Public Function FindComponentID(sJIRAComponentName As String) As String

End Function

Public Function Logout()

    Set oJiraService = Nothing
    Set oJiraAuth = Nothing
End Function

0 votes
Bridy Frett June 14, 2017

Ah, found the answer: https://jira.atlassian.com/browse/JRASERVER-62551

When I switched to a user with all lowercase characters, I was able to assign the component lead.

Ofira Daniel June 5, 2018

We are facing same issue but in our case our users name didn’t change

Is it pre condition that user name will be in small letters only ? Our user names are mix of small letters , capital letters , numbers .

0 votes
Bridy Frett June 14, 2017

Hi,

Was a solution found for this?  I'm having the same problem with an account called preproductionHPIDsupport.  When I start typing the name, it shows up as a valid option for Component Lead and I select it from the user list.

I confirmed that I can log in with this ID.  While logged in with that account, I confirmed that I can browse the project and assign issues to myself (preproductionHPIDsupport)

I can set the component lead to other values - just not that one in particular.

Thanks!

0 votes
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 6, 2017

Start by going back over the exact names of each user.  newDevGp1U10faf does not look like a valid JIRA user login, as they're usually lower case?  Are you using an external user directory?

Yuan Tian March 6, 2017

Hi Nic

In production environment, the user name uses lower letters. And, JIRA use internal user directory only. I cannot find useful information in logs. I can provide logs if youneed to know more details. 

I'm not sure if this problem is related to add-ons. git intergration add-on was intalled, and, problem still exists after I remove it.

Thank you for kindlu update:)

Yuan 

 

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 6, 2017

Not yet, we need to dig through why it's picking what looks like a broken user id.

Can you go into more detail on what you're doing in step 5?  Assuming you are on the screen where you should be able to set the component lead, and the field currently shows "Mary", what do you click, and then type?  Does it try to auto-complete Tom's name?  Also, what happens if you try to use the user-picker to find and select Tom?

Suggest an answer

Log in or Sign up to answer