2.3. GObject Signals

These signals can be used by the client API and plugins to subscribe to specific events. To explicitly connect after the default handler for a signal, use the connect_after method instead of connect. Some signals require a value to be returned by their handlers as noted.

2.3.1. Signal Flags

The “Signal flags” attribute of each of the signals describes certain attributes of their respective signals. See the GObject Signals documentation for more information including a detailed description of the signal emission process.

SIGNAL_ACTION:Signals with the SIGNAL_ACTION flag are safe to be emitted from arbitrary components within the application. These signals have default handlers which perform their action and are not stateful.
SIGNAL_RUN_FIRST:
 Signals with the SIGNAL_RUN_FIRST flag execute the default handler before handlers which are connected with either the connect() or connect_after() methods. These signals therefor do not provide connected handlers with an opportunity to block the emission of the signal from the default handler.
SIGNAL_RUN_LAST:
 Signals with the SIGNAL_RUN_LAST flag execute the default function after handlers which are connected with the connect() method but before handlers which are connected with the connect_after() method. This provides connected handlers with an opportunity to block the default function by halting emissionof the signal by using the emit_stop_by_name() method.

Note

Plugins which connect to signals should use the signal_connect() method which by defaults uses connect() to connect the signal. Alternatively connect_after() can be used by setting the after keyword argument to True.

2.3.2. Application Signals

The following are the signals for the KingPhisherClientApplication object.

campaign-changed(campaign_id)

This signal is emitted when campaign attributes are changed. Subscribers to this signal can use it to update and refresh information for the modified campaign.

Signal flags:SIGNAL_RUN_FIRST
Parameters:campaign_id (str) – The ID of the campaign whose information was changed.
campaign-created(campaign_id)

This signal is emitted after the user creates a new campaign id. Subscribers to this signal can use it to conduct an action after a new campaign id is created.

Signal flags:SIGNAL_RUN_FIRST
Parameters:campaign_id (str) – The ID of the new campaign.
campaign-delete(campaign_id)

This signal is emitted when the user deletes a campaign. Subscribers to this signal can use it to conduct an action after the campaign is deleted.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:campaign_id (str) – The ID of the campaign.
campaign-set(old_campaign_id, new_campaign_id)

This signal is emitted when the user sets the current campaign. Subscribers to this signal can use it to update and refresh information for the current campaign. The config “campaign_id” and “campaign_name” keys have already been updated with the new values when this signal is emitted.

Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • old_campaign_id (str) – The ID of the old campaign or None if the client is selecting one for the first time.
  • new_campaign_id (str) – The ID of the new campaign.
config-load(load_defaults)

This signal is emitted when the client configuration is loaded from disk. This loads all of the clients settings used within the GUI.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:load_defaults (bool) – Load missing options from the template configuration file.
config-save()

This signal is emitted when the client configuration is written to disk. This saves all of the settings used within the GUI so they can be restored at a later point in time.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
credential-delete(row_ids)

This signal is emitted when the user deletes a credential entry. Subscribers to this signal can use it to conduct an action an entry is deleted.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:row_ids ([int, ..]) – The row IDs that are to be deleted.
exit()

This signal is emitted when the client is exiting. Subscribers can use it as a chance to clean up and save any remaining data. It is emitted before the client is disconnected from the server. At this point the exit operation can not be cancelled.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
exit-confirm()

This signal is emitted when the client has requested that the application exit. Subscribers to this signal can use it as a chance to display a warning dialog and cancel the operation.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
message-delete(row_ids)

This signal is emitted when the user deletes a message entry. Subscribers to this signal can use it to conduct an action an entry is deleted.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:row_ids ([str, ..]) – The row IDs that are to be deleted.
message-sent(target_uid, target_email)

This signal is emitted when the user sends a message. Subscribers to this signal can use it to conduct an action after the message is sent, and the information saved to the database.

Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • target_uid (str) – Message uid that was sent.
  • target_email (str) – Email address associated with the sent message.
reload-css-style()

This signal is emitted to reload the style resources of the King Phisher client.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
rpc-cache-clear()

This signal is emitted to clear the RPC objects cached information. Subsequent invocations of RPC cache enabled methods will return fresh information from the server.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
server-connected()

This signal is emitted when the client has connected to the King Phisher server. The default handler sets the initial campaign optionally prompting the user to select one if one has not already been selected.

Signal flags:SIGNAL_RUN_FIRST
server-disconnected()

This signal is emitted when the client has disconnected from the King Phisher server.

Signal flags:SIGNAL_RUN_FIRST
sftp-client-start()

This signal is emitted when the client starts sftp client from within King Phisher. Subscribers can conduct an action prior to the default option being ran from the client configuration.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
visit-delete(row_ids)

This signal is emitted when the user deletes a visit entry. Subscribers to this signal can use it to conduct an action an entry is deleted.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:row_ids ([str, ..]) – The row IDs that are to be deleted.
unhandled-exception(exc_info, error_uid)

This signal is emitted when the application encounters an unhandled Python exception.

Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • exc_info (tuple) – A tuple of three objects corresponding to the return value of the sys.exc_info() function representing the exception that was raised.
  • error_uid (uuid.UUID) – The unique identifier that has been assigned to this exception for tracking.

2.3.3. Mail Tab Signals

The following are the signals for the MailSenderTab object.

message-create(target, message)

This signal is emitted when the message and target have been loaded and constructed. Subscribers to this signal may use it as an opportunity to modify the message object prior to it being sent.

New in version 1.10.0b3.

Signal flags:

SIGNAL_RUN_FIRST

Parameters:
message-data-export(target_file)

This signal is emitted when the client is going to export the message configuration to a King Phisher Message (KPM) archive file.

Signal flags:SIGNAL_ACTION | SIGNAL_RUN_LAST
Parameters:target_file (str) – The path to write the archive file to.
Returns:Whether or not the message archive was successfully imported.
Return type:bool
message-data-import(target_file, dest_dir)

This signal is emitted when the client is going to import the message configuration from a King Phisher Message (KPM) archive file.

Signal flags:

SIGNAL_ACTION | SIGNAL_RUN_LAST

Parameters:
  • target_file (str) – The source archive file to import.
  • dest_dir (str) – The destination directory to unpack the archive into.
Returns:

Whether or not the message archive was successfully imported.

Return type:

bool

message-send(target, message)

This signal is emitted after the message has been fully constructed (after message-create) and can be used as an opportunity to inspect the message object and prevent it from being sent.

New in version 1.10.0b3.

Signal flags:

SIGNAL_RUN_LAST

Parameters:
Returns:

Whether or not to proceed with sending the message.

Return type:

bool

send-finished()

This signal is emitted after all messages have been sent.

Signal flags:SIGNAL_RUN_FIRST
send-precheck()

This signal is emitted when the user is about to start sending phishing messages. It is used to ensure that all settings are sufficient before proceeding. A handler can return False to indicate that a pre-check condition has failed and the operation should be aborted.

Signal flags:SIGNAL_RUN_LAST
Returns:Whether or not the handler’s pre-check condition has passed.
Return type:bool
target-create(target)

This signal is emitted when the target has been loaded and constructed. Subscribers to this signal may use it as an opportunity to modify the target object prior to it being sent.

New in version 1.10.0b3.

Signal flags:SIGNAL_RUN_FIRST
Parameters:target (MessageTarget) – The target for the message.
target-send(target)

This signal is emitted after the target has been fully constructed (after target-create) and can be used as an opportunity to inspect the target object and prevent it from being sent to.

New in version 1.10.0b3.

Signal flags:SIGNAL_RUN_LAST
Parameters:target (MessageTarget) – The target for the message.
Returns:Whether or not to proceed with sending to the target.
Return type:bool

2.3.4. Server Event Signals

The following are the signals for the ServerEventSubscriber object. These events are published by the server forwarded to the client based on the active subscriptions. When an event is forwarded to a client the corresponding GObject signal is emitted for consumption by the client. See the section on Published Events for more details.

db-alert-subscriptions(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-campaigns(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-campaign-types(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-companies(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-company-departments(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-credentials(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-deaddrop-connections(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-deaddrop-deployments(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-industries(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-landing-pages(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-messages(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-users(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.
db-visits(event_type, objects)
Signal flags:

SIGNAL_RUN_FIRST

Parameters:
  • event_type (str) – The type of event, one of either deleted, inserted or updated.
  • objects (list) – The objects from the server. The available attributes depend on the subscription.