def delete(self) -> None: """Deletes the item.""" self.ensure_not_locked() prompt, = self._item.call('Delete', '') if prompt != "/": dismissed, _result = exec_prompt(self.connection, prompt) if dismissed: raise PromptDismissedException('Prompt dismissed.')
def unlock(self, callback=None): """Requests unlocking the collection. If `callback` is specified, calls it when unlocking is complete (see :func:`~secretstorage.util.exec_prompt` description for details) and returns a boolean representing whether the operation was dismissed. Otherwise, uses loop from GLib API.""" service_obj = bus_get_object(self.bus, SECRETS, SS_PATH) service_iface = InterfaceWrapper(service_obj, SERVICE_IFACE) prompt = service_iface.Unlock([self.collection_path], signature='ao')[1] if len(prompt) > 1: if callback: exec_prompt(self.bus, prompt, callback) else: return exec_prompt_glib(self.bus, prompt)[0] elif callback: # We still need to call it. callback(False, [])
def delete(self) -> None: """Deletes the collection and all items inside it.""" self.ensure_not_locked() prompt, = self._collection.call('Delete', '') if prompt != "/": dismissed, _result = exec_prompt(self.connection, prompt) if dismissed: raise PromptDismissedException('Prompt dismissed.')
def create_collection(connection: DBusConnection, label: str, alias: str = '', session: Optional[Session] = None) -> Collection: """Creates a new :class:`Collection` with the given `label` and `alias` and returns it. This action requires prompting. :raises: :exc:`~secretstorage.exceptions.PromptDismissedException` if the prompt is dismissed. """ if not session: session = open_session(connection) properties = {SS_PREFIX + 'Collection.Label': ('s', label)} service = DBusAddressWrapper(SS_PATH, SERVICE_IFACE, connection) collection_path, prompt = service.call('CreateCollection', 'a{sv}s', properties, alias) if len(collection_path) > 1: return Collection(connection, collection_path, session=session) dismissed, result = exec_prompt(connection, prompt) if dismissed: raise PromptDismissedException('Prompt dismissed.') signature, collection_path = result assert signature == 'o' return Collection(connection, collection_path, session=session)