class AccountController(BaseController): def __init__(self): self.utility = Utility() self.registerService = RegisterService() dh = LogDBHandler(config=config, request=request) log.addHandler(dh) self.__getMasterData() def _before(self, *args, **kw): tmpl_context.project_name = "pollandsurvey" def __getMasterData(self): self.serviceType = model.SocialType.getAll(1) @expose("pollandsurvey.templates.account.index") @require(predicates.not_anonymous()) def index(self, *args, **kw): userService = model.UserService() if request.identity: user = request.identity["user"] userService = model.UserService.getById(user.user_id) if userService is None: userService = model.UserService() listConutry = [] self.country = model.FixCountry.getAll("1") for lang in self.country: listConutry.append(lang.to_json()) listGender = model.Gender.getAll(1) listLanguage = [] self.language = model.FixLanguage.getAll("1") for lang in self.language: listLanguage.append(lang.to_json()) return dict( page="index", userService=userService, listConutry=listConutry, listGender=listGender, listLanguage=listLanguage, ) @expose("pollandsurvey.templates.account.changepassword") @require(predicates.not_anonymous()) def changepass(self, *args, **kw): """Handle the front-page.""" return dict(page="changepassword") @expose("pollandsurvey.templates.account.socialmedia") @require(predicates.not_anonymous()) def socialmedia(self, *args, **kw): user = request.identity["user"] self.userSocialNetwork = model.UserSocialNetwork.getSocialByUserId(user.user_id) return dict(page="socialmedia", userSocialNetwork=self.userSocialNetwork, socialType=self.serviceType) @expose("pollandsurvey.templates.account.cancellation") @require(predicates.not_anonymous()) def cancellation(self, *args, **kw): """Handle the front-page.""" return dict(page="cancellation") @expose() @require(predicates.not_anonymous()) def deactivate(self): self.user = request.identity["user"] self.user.active = 0 # user.deactivate() self.urlServer = model.SystemEnvironment.getServerUrl() self.userGenCode = self.registerService.deActivateUserGenCode(self.user) self.emailValues = {} self.emailValues["user_name"] = self.user.display_name self.emailValues["email"] = self.user.email_address self.emailValues["deactivate_url"] = ( request.scheme + "://" + self.urlServer + "/activate/canceldeactive/" + str(self.userGenCode.code) ) # request.application_url self.sendMailService = SendMailService() self.sendMailService.senddeActivate(self.emailValues) self.sendMailService.start() # model.User.deactivate() flash(_(LanguageObject.getdata("msg_thank_you")), "warning") redirect("/logout_handler") @expose() @require(predicates.not_anonymous()) def updateprofile(self, *args, **kw): if request.identity: self.user = request.identity["user"] self.userService = model.UserService.getById(self.user.user_id) if self.userService is None: self.userService = model.UserService() self.userService.updateByValue(**kw) self.userService.accept_tnc = 1 self.userService.user_id = self.user.user_id self.userService.birthdate = self.utility.convertToDateTime(self.userService.birthdate, "%d/%m/%Y") self.userService.updateall() flash(_(LanguageObject.getdata("msg_save_success")), "warning") else: log.warning("user cannot login, redirect to login") flash(_(LanguageObject.getdata("msg_not_login")), "warning") redirect("/account") @expose() # @expose('json') # @expose('json',content_type="text/plain" ) @require(predicates.not_anonymous()) def rechangepass(self, *args, **kw): self.success = False self.message = "" if request.identity: self.current_password = kw.get("password") self.new_password = kw.get("newpassword") self.re_new_password = kw.get("rnewpassword") user = request.identity["user"] if user.validate_password(self.current_password): if str(self.new_password) == str(self.re_new_password): user._set_password(self.new_password) self.success = True self.message = LanguageObject.getdata("msg_password_changed") else: self.message = LanguageObject.getdata("msg_password_not_match") else: log.warning("user %s password not match : %s", user.user_name, self.current_password) self.message = LanguageObject.getdata("msg_password_not_match") else: self.message = LanguageObject.getdata("msg_not_login") log.warning("user cannot login, redirect to login") flash(_(self.message), "warning") # return dict(success=self.success, message = self.message); redirect("/account/changepass")