def get(self, mode=""): google_user = users.get_current_user() if google_user is None: self.redirect(users.create_login_url('/login')) # last_access_timeを記録 user = User.gql("WHERE user_id=:1 and service=:2", google_user.user_id(), "google").get() if user is None: user = User(user_id=google_user.user_id(), name=google_user.nickname(), mail=google_user.email(), service='google', access_token=None, google_user=google_user, post_key='control', last_access_time=datetime.datetime.now()) user.put() session = Session(self.request, self.response) session.new(user) if mode == 'mlogin': self.redirect('/mhome?xoauth_requestor_id=' + user.user_id) return self.redirect('/')
def main(): """ Main method of the program """ category_manager: CategoryManager = CategoryManager() product_manager: ProductManager = ProductManager() store_manager: StoreManager = StoreManager() session: Session = Session() try: session.connect() session = welcome(category_manager, product_manager, session, store_manager) except Exception: session.close() raise session.close()
def define_database(category_manager: CategoryManager, product_manager: ProductManager, session: Session, store_manager: StoreManager) -> Session: """ Format user's database to host application's data. :param category_manager: CategoryManager :param product_manager: ProductManager :param session: Session :param store_manager: StoreManager :return: Session """ global DATABASE # pylint: disable=W0603 while 1: database_name: str = input("Entrez le nom de la base de " "données: \n") if session.database_exists(database_name): database = Database(session, database_name) session.close() session = Session() database.session = session try: session.connect() database.populate(category_manager, product_manager, store_manager) DATABASE = database_name return session except Exception: session.close() raise else: print(f"\n" f"Vous avez tapé {database_name} mais celle-ci " f"n'est pas présente dans mysql. Merci de " f"vérifier " f"\n")
def get(self, action="", account="", param=""): verification_code = self.request.get("code") args = dict(client_id=settings.FACEBOOK_APP_ID, redirect_uri=self.request.path_url) if verification_code: args["client_secret"] = settings.FACEBOOK_APP_SECRET args["code"] = verification_code response = cgi.parse_qs( urllib.urlopen( "https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(args)).read()) access_token = response["access_token"][-1] profile_res = unicode( urllib.urlopen("https://graph.facebook.com/me?" + urllib.urlencode(dict( access_token=access_token))).read(), 'utf-8') profile = simplejson.loads(profile_res) user = None is_not_login = False try: self.check_login() user = self.session.get_user() except utils.NotLoginError: is_not_login = True user = User.gql("WHERE user_id=:1 and service=:2", str(profile["id"]), "facebook").get() if user is None: user = User(user_id=str(profile["id"]), name=str(profile["name"]), mail=str(profile["email"]), service='facebook', access_token=access_token, post_key='control', last_access_time=datetime.datetime.now()) user.put() session = Session(self.request, self.response) session.new(user) account = Account(user_ref=user, service="facebook", account_name=str(profile["id"]), display_name=str(profile["name"]), account_info=profile_res, scope=FACEBOOK_SCOPE, access_token=access_token) account.put() #既に同じアカウントが登録されていたら削除します saved_accounts = Account.gql( "WHERE service = :1 and user_ref = :2 and account_name = :3", "facebook", user.key(), account.account_name) for saved_account in saved_accounts: if saved_account.key() != account.key(): saved_account.delete() if is_not_login: if action == 'mlogin': self.redirect('/mhome?xoauth_requestor_id=' + user.user_id) return self.redirect('/') return #ウィンドウを閉じます tmpl = os.path.join(os.path.dirname(__file__), "../view/oauth_callback.html") return self.response.out.write( template.render(tmpl, {'account': account})) else: args["scope"] = FACEBOOK_SCOPE if action == 'oauth': args["display"] = 'popup' self.redirect("https://www.facebook.com/dialog/oauth?" + #"https://graph.facebook.com/oauth/authorize?" + urllib.urlencode(args)) return
def check_login(self): # if self.check_2lo_oauth(): # return self.session = Session(self.request, self.response) if not self.session.is_login(): raise NotLoginError()
# Single place for global scoped objects # Provides a single DatabaseManager, and Creator. # Also, the order of the imports is important, so don't try to # neaten them up. import os _PATH = os.path.dirname(os.path.abspath(__file__)) from controller.database_manager import DatabaseManager database_manager = DatabaseManager() from controller.database_creator import DatabaseCreator database_creator = DatabaseCreator() from controller.test_db_creator import TestDatabaseCreator test_database_creator = TestDatabaseCreator() from controller.session import Session session = Session()