Skip to content

Commit

Permalink
Add completion of historical servers
Browse files Browse the repository at this point in the history
  • Loading branch information
zeroSteiner committed Jul 30, 2019
1 parent ec07c6f commit 400c921
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
1 change: 1 addition & 0 deletions data/client/king_phisher/client_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"proxy.url": null,
"rpc.serializer": null,
"server": "localhost:22",
"server.history": [],
"server_remote_port": 80,
"server_use_ssl": false,
"server_username": "",
Expand Down
18 changes: 14 additions & 4 deletions king_phisher/client/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,13 @@ def server_connect(self, username, password, otp=None, window=None):
rpc.username = username
self.logger.debug('successfully authenticated to the remote king phisher service')

server_str = self.config['server']
history = self.config['server.history']
if server_str in history:
history.remove(server_str)
history.insert(0, server_str)
self.config['server.history'] = history

event_subscriber = server_events.ServerEventSubscriber(rpc)
if not event_subscriber.is_connected:
event_subscriber.reconnect = False
Expand All @@ -736,10 +743,13 @@ def server_connect(self, username, password, otp=None, window=None):
self.rpc = rpc
self.server_events = event_subscriber
self._rpc_ping_event = GLib.timeout_add_seconds(parse_timespan('5m'), functools.partial(_rpc_ping, rpc))
user = self.rpc.graphql("""\
query getUser($name: String!) {
db { user(name: $name) { id name } }
}""", {'name': self.config['server_username']})['db']['user']
user = self.rpc.graphql(
"""\
query getUser($name: String!) {
db { user(name: $name) { id name } }
}""",
{'name': self.config['server_username']}
)['db']['user']
self.server_user = ServerUser(id=user['id'], name=user['name'])
self.emit('server-connected')
return True, ConnectionErrorReason.SUCCESS
Expand Down
9 changes: 9 additions & 0 deletions king_phisher/client/dialogs/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,15 @@ def __init__(self, *args, **kwargs):
self.popup_menu.append('About', lambda x: about.AboutDialog(self.application).interact())
self.popup_menu.append('Import Configuration', self.signal_menuitem_activate_import_config)

# setup server completion
model = Gtk.ListStore(str)
for entry in self.config['server.history']:
model.append((entry,))
completion = Gtk.EntryCompletion()
completion.set_model(model)
completion.set_text_column(0)
self.gobjects['entry_server'].set_completion(completion)

def signal_button_pressed(self, _, event):
if not (event.type == Gdk.EventType.BUTTON_PRESS and event.button == Gdk.BUTTON_SECONDARY):
return
Expand Down

0 comments on commit 400c921

Please sign in to comment.