IndexError: list index out of range for Entries
Verfasst: Mittwoch 12. Juni 2019, 11:15
My Code:
import wx
import wx.xrc
from ldap3 import Server, Connection, SUBTREE, ALL_ATTRIBUTES, AUTO_BIND_NO_TLS
import getpass
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None)
self.SetTopWindow(self.frame)
self.frame.Show()
return True
class MyFrame (wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title="ActiveDirectory", pos=wx.DefaultPosition, size=wx.Size(500, 300), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
myGridSizer = wx.GridSizer(0, 2, 0, 0)
self.nameLabel = wx.StaticText(self, wx.ID_ANY, "Name", wx.DefaultPosition, wx.DefaultSize, 0)
self.nameLabel.Wrap(-1)
myGridSizer.Add(self.nameLabel, 0, wx.ALL, 5)
self.nameText = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0)
myGridSizer.Add(self.nameText, 0, wx.ALL, 5)
self.getBtn = wx.Button(self, wx.ID_ANY, "Get", wx.Point (-1, -1), wx.DefaultSize, 0)
myGridSizer.Add(self.getBtn, 0, wx.ALL, 5)
self.textbox = wx.TextCtrl(self, wx.ID_ANY, size=(225, 125), style=wx.TE_MULTILINE | wx.TE_READONLY)
myGridSizer.Add(self.textbox, 0, wx.ALL, 5)
self.SetSizer(myGridSizer)
self.Layout()
self.Centre(wx.BOTH)
self.getBtn.Bind(wx.EVT_BUTTON, self.getValues)
def __del__(self):
pass
def getValues(self, event):
server = Server("server", port=389, use_ssl=False)
print("1111 vor serverconnect")
c = Connection(server, user="testuser", password="password",
auto_bind=AUTO_BIND_NO_TLS)
print("2222 nach servconnect")
c.search(search_base="search_base", search_scope=SUBTREE,
search_filter='(mail=' + self.nameText.Value + ')' or '(sAMAccountName=' + self.nameText.Value + ')',
attributes=ALL_ATTRIBUTES)
entry = c.entries[0]
name = entry.displayName.value
mail = entry.mail.value
givenname = entry.givenname.value
sn = entry.sn.value
number = entry.telephonenumber.value
department = entry.department.value
company = entry.company.value
street = entry.streetAddress.value
print(getpass.getuser())
print(c.entries)
self.textbox.SetValue(name + ("\n" + mail) + ("\n" + givenname) + ("\n" + sn) + ("\n" + number) + ("\n" + department) + ("\n" + company) + ("\n" + street))
if __name__=="__main__":
app = MyApp(False)
app.MainLoop()
Errormessage:
Traceback (most recent call last):
File "C:/Users/orlikle/PycharmProjects/Test/ActiveDirectory.py", line 69, in getValues
entry = c.entries[0]
IndexError: list index out of range
import wx
import wx.xrc
from ldap3 import Server, Connection, SUBTREE, ALL_ATTRIBUTES, AUTO_BIND_NO_TLS
import getpass
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None)
self.SetTopWindow(self.frame)
self.frame.Show()
return True
class MyFrame (wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title="ActiveDirectory", pos=wx.DefaultPosition, size=wx.Size(500, 300), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT))
myGridSizer = wx.GridSizer(0, 2, 0, 0)
self.nameLabel = wx.StaticText(self, wx.ID_ANY, "Name", wx.DefaultPosition, wx.DefaultSize, 0)
self.nameLabel.Wrap(-1)
myGridSizer.Add(self.nameLabel, 0, wx.ALL, 5)
self.nameText = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0)
myGridSizer.Add(self.nameText, 0, wx.ALL, 5)
self.getBtn = wx.Button(self, wx.ID_ANY, "Get", wx.Point (-1, -1), wx.DefaultSize, 0)
myGridSizer.Add(self.getBtn, 0, wx.ALL, 5)
self.textbox = wx.TextCtrl(self, wx.ID_ANY, size=(225, 125), style=wx.TE_MULTILINE | wx.TE_READONLY)
myGridSizer.Add(self.textbox, 0, wx.ALL, 5)
self.SetSizer(myGridSizer)
self.Layout()
self.Centre(wx.BOTH)
self.getBtn.Bind(wx.EVT_BUTTON, self.getValues)
def __del__(self):
pass
def getValues(self, event):
server = Server("server", port=389, use_ssl=False)
print("1111 vor serverconnect")
c = Connection(server, user="testuser", password="password",
auto_bind=AUTO_BIND_NO_TLS)
print("2222 nach servconnect")
c.search(search_base="search_base", search_scope=SUBTREE,
search_filter='(mail=' + self.nameText.Value + ')' or '(sAMAccountName=' + self.nameText.Value + ')',
attributes=ALL_ATTRIBUTES)
entry = c.entries[0]
name = entry.displayName.value
mail = entry.mail.value
givenname = entry.givenname.value
sn = entry.sn.value
number = entry.telephonenumber.value
department = entry.department.value
company = entry.company.value
street = entry.streetAddress.value
print(getpass.getuser())
print(c.entries)
self.textbox.SetValue(name + ("\n" + mail) + ("\n" + givenname) + ("\n" + sn) + ("\n" + number) + ("\n" + department) + ("\n" + company) + ("\n" + street))
if __name__=="__main__":
app = MyApp(False)
app.MainLoop()
Errormessage:
Traceback (most recent call last):
File "C:/Users/orlikle/PycharmProjects/Test/ActiveDirectory.py", line 69, in getValues
entry = c.entries[0]
IndexError: list index out of range