class Context(): __data = {} __option_entity = None __user_entity = None __helpers = None __logger = None def __init__(self): self.__option_entity = Option_Entity() self.__user_entity = User_Entity() self.__helpers = Helpers() self.__data["AUTHOR"] = AUTHOR self.__data["COPYRIGHT"] = COPYRIGHT self.__data["LICENSE"] = LICENSE self.__data["VERSION"] = VERSION self.__data["MAINTAINER"] = MAINTAINER self.__data["EMAIL"] = EMAIL self.__data["STATUS"] = STATUS self.__data["REPO_URL"] = REPO_URL self.__data["AUTHOR_URL"] = AUTHOR_URL self.__data["RELEASES"] = RELEASES self.__data["SUPPORT_URL"] = SUPPORT_URL self.__logger = self.__helpers.get_logger(__name__) def push(self, new_data): self.__data.update(new_data) def load_options(self, options): options_to_load = {} for key in options.keys(): options_to_load[key] = options[key] if key not in self.__data.keys(): self.__data[key] = options[key] if len(options_to_load.keys()) > 0: new_options = self.__option_entity.get_many_by_keys( options_to_load.keys()) for option in new_options: self.__data[option.key] = option.value def autoload_options(self): options = self.__option_entity.get_many_by_autoload(True) for option in options: self.__data[option.key] = option.value def autoload_user(self, user_id): user_data = { "user_first_name": "", "user_last_name": "", "user_username": "", "user_email": "", "user_avatar": "" } if user_id is not None: user = self.__user_entity.get_one_by_id(user_id) if user is not False: user_data["user_first_name"] = user.first_name user_data["user_last_name"] = user.last_name user_data["user_username"] = user.username user_data["user_email"] = user.email user_data["user_avatar"] = Gravatar(user.email).get_image() self.__data.update(user_data) def get(self, key=None, default=None): if key is not None: return self.__data[key] if key in self.__data else default return self.__data
class Profile(): __option_entity = None __user_entity = None __helpers = None __logger = None __token = None __profile_entity = None def __init__(self): self.__option_entity = Option_Entity() self.__user_entity = User_Entity() self.__helpers = Helpers() self.__token = Token() self.__profile_entity = Profile_Entity() self.__logger = self.__helpers.get_logger(__name__) def get_profile(self, user_id): profile_data = { "first_name": "", "last_name": "", "username": "", "email": "", "job_title": "", "company": "", "address": "", "github_url": "", "twitter_url": "", "facebook_url": "", "access_token": "", "refresh_token": "", "avatar": "" } user = self.__user_entity.get_one_by_id(user_id) profile = self.__profile_entity.get_profile_by_user_id(user_id) if user is not False: profile_data["first_name"] = user.first_name profile_data["last_name"] = user.last_name profile_data["username"] = user.username profile_data["email"] = user.email profile_data["avatar"] = Gravatar(user.email).get_image() if profile is not False: profile_data["job_title"] = profile.job_title profile_data["company"] = profile.company profile_data["address"] = profile.address profile_data["github_url"] = profile.github_url profile_data["twitter_url"] = profile.twitter_url profile_data["facebook_url"] = profile.facebook_url profile_data["access_token"] = profile.access_token profile_data["refresh_token"] = profile.refresh_token return profile_data def update_profile(self, user_id, user_data): user_data["user"] = user_id if self.__profile_entity.profile_exists(user_data["user"]): status = self.__profile_entity.update_profile(user_data) status &= self.__user_entity.update_one_by_id( user_data["user"], user_data) return status else: status = (self.__profile_entity.create_profile(user_data) is not False) status &= self.__user_entity.update_one_by_id( user_data["user"], user_data) return status def update_access_token(self, user_id): token = self.__token.generate_token() while self.__profile_entity.token_used(token) is not False: token = self.__token.generate_token() return token if self.__profile_entity.update_access_token( user_id, token) else False def update_refresh_token(self, user_id): token = self.__token.generate_token() while self.__profile_entity.token_used(token) is not False: token = self.__token.generate_token() return token if self.__profile_entity.update_refresh_token( user_id, token) else False def get_profile_by_access_token(self, access_token): return self.__profile_entity.get_profile_by_access_token(access_token) def change_password(self, user_id, password): return self.__user_entity.update_password_by_user_id(user_id, password) def restore_session(self, user_id, request): return update_session_auth_hash( request, self.__user_entity.get_one_by_id(user_id)) def validate_password(self, user_id, password): return self.__user_entity.validate_password_by_user_id( user_id, password) def update_user(self, user_id, user_data): return self.__user_entity.update_one_by_id(self, user_id, user_data) def username_used_elsewhere(self, user_id, username): user = self.__user_entity.get_one_by_username(username) return False if user is False or user.id == user_id else True def email_used_elsewhere(self, user_id, email): user = self.__user_entity.get_one_by_email(email) return False if user is False or user.id == user_id else True