示例#1
0
    def set_account_password(self, old_email, new_email, password, callback):
        def on_password_store_finish(source, result, data):
            try:
                success = Secret.password_store_finish(result)
            except GLib.Error as e:
                logging.error('Failed to store password, Error: {}'.format(e))
                success = False
            if callback:
                callback(success)

        def on_password_clear_finish(source, result, data):
            try:
                password_removed = Secret.password_clear_finish(result)
                if password_removed:
                    logging.debug('Cleared password for: {}'.format(old_email))
                else:
                    logging.debug(
                        'No password found to clear for: {}'.format(old_email))
            except GLib.Error as e:
                logging.error(
                    'Failed to clear password for: {}, Error: {}'.format(
                        old_email, e))
                if callback:
                    callback(False)
            else:
                Secret.password_store(
                    self._account_schema,
                    {'email': new_email},
                    self._current_collection,
                    'Pandora Account',
                    password,
                    None,
                    on_password_store_finish,
                    None,
                )

        if old_email and old_email != new_email:
            Secret.password_clear(
                self._account_schema,
                {'email': old_email},
                None,
                on_password_clear_finish,
                None,
            )

        else:
            Secret.password_store(
                self._account_schema,
                {'email': new_email},
                self._current_collection,
                'Pandora Account',
                password,
                None,
                on_password_store_finish,
                None,
            )
示例#2
0
    def set_account_password(self, old_email: str, new_email: str,
                             password: str) -> Awaitable[bool]:
        future = asyncio.Future()  # type: asyncio.Future

        def on_password_store_finish(source, result, data):
            try:
                success = Secret.password_store_finish(result)
            except GLib.Error as e:
                future.set_exception(e)
            future.set_result(success)

        def on_password_clear_finish(source, result, data):
            try:
                password_removed = Secret.password_clear_finish(result)
                if password_removed:
                    logging.debug('Cleared password for: {}'.format(old_email))
                else:
                    logging.debug(
                        'No password found to clear for: {}'.format(old_email))
            except GLib.Error as e:
                future.set_exception(e)
            else:
                Secret.password_store(
                    self._account_schema,
                    {'email': new_email},
                    self._current_collection,
                    'Pandora Account',
                    password,
                    None,
                    on_password_store_finish,
                    None,
                )

        if old_email and old_email != new_email:
            Secret.password_clear(
                self._account_schema,
                {'email': old_email},
                None,
                on_password_clear_finish,
                None,
            )

        else:
            Secret.password_store(
                self._account_schema,
                {'email': new_email},
                self._current_collection,
                'Pandora Account',
                password,
                None,
                on_password_store_finish,
                None,
            )

        return future
示例#3
0
	def testAsyncNotFound(self):
		loop = GLib.MainLoop(None, False)

		def on_result_ready(source, result, unused):
			loop.quit()
			deleted = Secret.password_clear_finish(result)
			self.assertEquals(False, deleted)

		Secret.password_clear(STORE_SCHEMA, { "number": "7", "string": "five" },
		                      None, on_result_ready, None)

		loop.run()
示例#4
0
	def testAsynchronous(self):
		loop = GLib.MainLoop(None)

		def on_result_ready(source, result, unused):
			loop.quit()
			deleted = Secret.password_clear_finish(result)
			self.assertEquals(True, deleted)

		Secret.password_clear(STORE_SCHEMA, { "number": "2", "string": "two" },
		                      None, on_result_ready, None)

		loop.run()
示例#5
0
    def set_account_password(self, old_email, new_email, password, callback):
        def on_password_store_finish(source, result, data):
            try:
                success = Secret.password_store_finish(result)
            except GLib.Error as e:
                logging.error('Failed to store password, Error: {}'.format(e))
                success = False
            if callback:
                callback(success)

        def on_password_clear_finish(source, result, data):
            try:
                password_removed = Secret.password_clear_finish(result)
                if password_removed:
                    logging.debug('Cleared password for: {}'.format(old_email))
                else:
                    logging.debug('No password found to clear for: {}'.format(old_email))
            except GLib.Error as e:
                logging.error('Failed to clear password for: {}, Error: {}'.format(old_email, e))
                if callback:
                    callback(False)
            else:
                Secret.password_store(
                    self._account_schema,
                    {'email': new_email},
                    self._current_collection,
                    'Pandora Account',
                    password,
                    None,
                    on_password_store_finish,
                    None,
                )

        if old_email and old_email != new_email:
            Secret.password_clear(
                self._account_schema,
                {'email': old_email},
                None,
                on_password_clear_finish,
                None,
            )

        else:
            Secret.password_store(
                self._account_schema,
                {'email': new_email},
                self._current_collection,
                'Pandora Account',
                password,
                None,
                on_password_store_finish,
                None,
            )
示例#6
0
    def testAsyncNotFound(self):
        loop = GLib.MainLoop(None)

        def on_result_ready(source, result, unused):
            loop.quit()
            deleted = Secret.password_clear_finish(result)
            self.assertEquals(False, deleted)

        Secret.password_clear(STORE_SCHEMA, {
            "number": "7",
            "string": "five"
        }, None, on_result_ready, None)

        loop.run()
示例#7
0
 def clearUser(self):
     Secret.password_clear(self.SCHEMA, self.KEY, None, None)
示例#8
0
 def reset_refresh_token(self):
     Secret.password_clear(self.SECRET_SCHEMA, {}, None, None, None)