From 31b42f83413e1edaf019c6e13d0053646ac44596 Mon Sep 17 00:00:00 2001 From: Duda Dornelles Date: Thu, 20 Nov 2014 14:53:22 -0200 Subject: #151 creating keys whens SOLEDAD_DATA_SYNC_DONE is thrown. If keys already exists nothing happens. This will allow users to use pixelated by registring on the web since their keys will be created at first login and will prevent key duplication since we just try to create the keys after the sync is done --- service/pixelated/config/app_factory.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'service/pixelated/config') diff --git a/service/pixelated/config/app_factory.py b/service/pixelated/config/app_factory.py index 81868849..652ef5b1 100644 --- a/service/pixelated/config/app_factory.py +++ b/service/pixelated/config/app_factory.py @@ -13,6 +13,8 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . +import sys + from twisted.internet import reactor from pixelated.adapter.mail_service import MailService from pixelated.adapter.mail import InputMail @@ -28,15 +30,14 @@ from requests.exceptions import ConnectionError from pixelated.controllers import * from pixelated.adapter.tag_service import TagService import os -import sys from leap.common.events import ( register, + unregister, events_pb2 as proto ) -from twisted.web.iweb import IAccessLogFormatter from twisted.web.server import Site -from zope.interface import provider +CREATE_KEYS_IF_KEYS_DONT_EXISTS_CALLBACK=12345 def init_index_and_remove_dupes(querier, search_engine, mail_service): def wrapper(*args, **kwargs): @@ -94,6 +95,15 @@ def init_leap_session(app): return leap_session +def look_for_user_key_and_create_if_cant_find(leap_session): + def wrapper(*args, **kwargs): + leap_session.nicknym.generate_openpgp_key() + unregister(proto.SOLEDAD_DONE_DATA_SYNC, uid=CREATE_KEYS_IF_KEYS_DONT_EXISTS_CALLBACK) + + return wrapper + + + def init_app(app): leap_session = init_leap_session(app) soledad_querier = SoledadQuerier(soledad=leap_session.account._soledad) @@ -127,6 +137,9 @@ def init_app(app): search_engine=search_engine, mail_service=mail_service)) + register(signal=proto.SOLEDAD_DONE_DATA_SYNC, uid=CREATE_KEYS_IF_KEYS_DONT_EXISTS_CALLBACK, + callback=look_for_user_key_and_create_if_cant_find(leap_session)) + _setup_routes(app, home_controller, mails_controller, tags_controller, features_controller, sync_info_controller, attachments_controller) -- cgit v1.2.3