class InterfaceServiceController(RestController): def __init__(self): dh = LogDBHandler( config=config,request=request); log.addHandler(dh) self.utility = Utility(); self.urlUtility = URLUtility(); self.urlServer = model.SystemEnvironment.getServerUrl(); @with_trailing_slash @expose('json') #@require(predicates.in_any_group('voter','managers', msg=l_('Only for voter'))) def get_all(self,*args,**kw): log.info( "get_all"); log.info( "args : %s ", args); log.info( "kw : %s", kw); #print len(request.headers); #for h in request.headers: # print h , request.headers[h]; #log.info( "body : %s" ,request.body); print ("body : %s" ,request.body); try: if (kw): self.client_id = kw['clientId']; self.client_secret = kw['clientSecret']; self.UserClientAuthen = model.UserClientAuthen.getUserClientAuthen(self.client_id, self.client_secret); samples = kw; if (self.UserClientAuthen): log.info("user Client Auth %s" , str(self.UserClientAuthen.user_id)) ; self.keyAuthorize = self.utility.my_random_string(15); samples['keyAuthorize'] = self.keyAuthorize #; "#987654321"; self.startDate = self.utility.getCurrentDate(); self.expireDate = self.utility.plusTime(self.startDate, 5) model.UserSessionAuthen.createSessionAuthen( self.keyAuthorize,self.startDate, self.expireDate ) ; else: if( request.body): self.df = json.loads(request.body, encoding=request.charset); log.info( "get value : request.body " + self.df); #print self.df; #set keyAuthorize self.client_id = self.df['clientId']; self.client_secret = self.df['clientSecret']; samples = self.df; else: samples = {u'userName': u'tong', u'keyAuthorize': None, u'password': u'tong', u'dataTestSurfvey': None, u'passKey': u'#13456789'}; self.client_id = kw['clientId']; self.client_secret = kw['clientSecret']; except Exception as e: log.error(e); if kw: samples = kw; samples['keyAuthorize'] = "#987654321"; #samples = {u'userName': u'tong', u'keyAuthorize': None, u'password': u'tong', u'dataTestSurfvey': None, u'passKey': u'#13456789'}; return samples;#dict(surfveyAuthorize=samples); @with_trailing_slash @expose('json') def createTest(self,*args,**kw): print "args " ,args; print "kw " ,kw; for h in request.headers: print "%s , %s " %(h,request.headers[h]); self.Keyauthorize = request.headers['Keyauthorize']; samples = kw; print "createTest key authorize : " , self.Keyauthorize; if model.UserSessionAuthen.currentSessionAuthen(self.Keyauthorize): #if self.Keyauthorize == "459987456": self.userExtenal = model.UseExtenalLink(id_user = kw.get("idUser"), user_type =kw.get("userType"), id_test = kw.get("idTest"), # id_theme = kw.get("idTheme"), no_test = kw.get("noTest"), user_name = kw.get("userName") ); self.userExtenal.save(); #x = json.loads(kw, object_hook=lambda d: namedtuple('X', d.keys())(*d.values())) #1 create public self.defaultOption = model.QuestionOption.getByProjectDefault(self.userExtenal.id_test,'1'); if(self.defaultOption is None): print "defaultOption is null" self.defaultOption = model.QuestionOption(); self.activate_date = self.utility.getStartDate() self.option = model.QuestionOption(id_question_project = self.defaultOption.id_question_project, id_question_theme = self.defaultOption.id_question_theme, name_publication = str(self.defaultOption.name_publication.encode('utf8')) + "-" + str(self.userExtenal.user_name.encode('utf8')), id_fix_random_type = self.defaultOption.id_fix_random_type, activate_date = self.activate_date, expire_date = self.utility.plusDate(self.activate_date, 365), id_close_type = self.defaultOption.id_close_type, id_question_invitation = self.defaultOption.id_question_invitation, header_message =self.defaultOption.header_message, footer_message = self.defaultOption.footer_message, welcome_message = self.defaultOption.welcome_message, end_message = self.defaultOption.end_message, use_question_no = self.defaultOption.use_question_no, duration_time = self.defaultOption.duration_time, random_answer = self.defaultOption.random_answer, show_navigator = self.defaultOption.show_navigator, redirect_url = self.defaultOption.redirect_url, redirect_other_url = self.defaultOption.redirect_other_url, no_use = self.userExtenal.no_test, show_score = self.defaultOption.show_score, use_general_information = self.defaultOption.use_general_information ); self.option.save(); print "leng : %s " %(len(self.defaultOption.numberquestion)) for defaultOp in self.defaultOption.numberquestion: self.numberQuestionGroup = model.NumberQuestionGroup(id_question_option = self.option.id_question_option, id_question_group = defaultOp.id_question_group, amount = defaultOp.amount) self.numberQuestionGroup.save() del defaultOp self.userExtenal.id_question_option = self.option.id_question_option; #2 samples['idPublic'] = self.option.id_question_option; samples['status'] = True; samples['message'] = "create success"; samples['urlTest'] = "create success"; samples['createDate'] = self.option.activate_date ;#datetime.now() ; #"2015-06-23 12:02:57" ;# samples['expireDate'] = self.option.expire_date;#datetime.now() + timedelta(days=30 ) ; #"2015-07-23 12:02:57";# else : log.warning("Keyauthorize %s is expired" %self.Keyauthorize); samples['status'] = False; samples['message'] = "Keyauthorize %s is expired" %self.Keyauthorize; response.headers['KeyAuthorize'] = self.Keyauthorize return samples; @with_trailing_slash @expose('json') def evaluate(self,*args,**kw): log.info("evaluate") log.info( "---------evaluate-----------------") log.info( args); log.info ( "kw = %s " %kw); samples = kw; if('Keyauthorize' in request.headers): self.Keyauthorize = request.headers['Keyauthorize']; else: self.Keyauthorize = '0000000000'; log.info( "11 key authorize : " + self.Keyauthorize); if model.UserSessionAuthen.currentSessionAuthen(self.Keyauthorize): #self.Keyauthorize == "#987654321" : log.info( "idOwnerTest : %s , idTest : %s , idPublic : %s" %(kw.get("idOwnerTest") , kw.get("idTest"),kw.get("idPublic") ) ); self.userExtenal = model.UseExtenalLink.getUserLinkBy( idUser= kw.get("idOwnerTest"),idTest = kw.get("idTest"),idPublic = kw.get("idPublic")); if self.userExtenal : log.info( "create userExtenal") #create sur_voter self.mapExtenal = model.MapVoterExtenalLink.getUserLinkVoterBy(self.userExtenal.id_use_external_link, kw.get("idUser")); self.voter = model.Voter(); if( self.mapExtenal is None or self.mapExtenal.voter is None): log.info( "create voter") log.info("user external is not voter %s",kw.get("email")); self.voter = model.Voter.getVoterByEmail(kw.get("email")); if self.voter is None: log.info("voter %s is not existed",kw.get("email")); self.voter = model.Voter(email = kw.get("email"), prefix = kw.get("idPrefix"), firstname = kw.get("firstname"), lastname = kw.get("lastname"), user_id_owner = 3, id_marriage_status = kw.get("idMarriageStatus"), birthdate = kw.get("birthdate"), id_gender = kw.get("idGender") ); self.voter.save(); self.mapExternalLink = model.MapVoterExtenalLink(id_use_external_link = self.userExtenal.id_use_external_link, id_voter= self.voter.id_voter, id_user_ref= kw.get("idUser") ); self.mapExternalLink.save(); #self.userExtenal.id_voter = self.voter.id_voter; #create sur_respondents self.respondents = model.Respondents(id_voter = self.voter.id_voter, id_question_project = kw.get("idTest"), id_question_option = kw.get("idPublic"), key_gen = self.utility.my_random_string(string_length=25), redirect_other_url = self.utility.convertToBit (kw.get("configUrlTest")) ); #self.respondents.finished =0; #self.respondents.score_exam =0; self.respondents.save(); #create link else: self.voter = self.mapExtenal.voter; self.respondents = model.Respondents.getByVoterIdAndPublicId(str(self.voter.id_voter), str(kw.get("idPublic"))); log.info( "id voter : %s" %self.voter.id_voter); samples['urlTest'] = self.urlUtility.URL_QUESTIONNAIRE.format(nameserver=self.urlServer,key=self.respondents.key_gen) ; print samples['urlTest'] #("{0}/ans/reply/{1}.{2}.{3}.0.html").format(request.application_url,str(kw.get("idTest")) ,str(kw.get("idPublic")) , str(self.voter.id_voter)) ; samples['status'] = True; samples['errorCode'] = 'S0001'; samples['message'] = "Create Success "; else: samples['status'] = False; samples['errorCode'] = 'E0002'; samples['message'] = "Find not found "; else: log.error( "Keyauthorize : is not same " ); response.headers['KeyAuthorize'] = self.Keyauthorize; print "------------end evaluate---------------------" print samples return samples; @with_trailing_slash @expose('json') def getScore(self,*args,**kw): log.info("getScore") samples = kw; print "-------------------------"; print kw['idUser']; print kw['idPublic']; print "-------------------------"; for h in request.headers: print "header : %s , %s " %(h,request.headers[h]); self.Keyauthorize = request.headers['Keyauthorize']; if('Keyauthorize' in request.headers): self.Keyauthorize = request.headers['Keyauthorize']; else: self.Keyauthorize = '0000000000'; log.info( "11 key authorize : " + self.Keyauthorize); samples['score'] = None; samples['urlscore'] = ''; if model.UserSessionAuthen.currentSessionAuthen(self.Keyauthorize): #self.Keyauthorize == "#987654321" : print "success %s " %self.Keyauthorize ; self.respondents = model.Respondents.getByidUserandPublicId(kw['idUser'],kw['idPublic']); if (self.respondents): print 'score : %s, %s , %s' %(self.respondents.score_exam,self.respondents.full_score,self.respondents.personality_score) ; if self.respondents.personality_score is not None : samples['score'] = self.respondents.personality_score samples['fullScore'] = None else: samples['score'] = self.respondents.score_exam samples['fullScore'] = self.respondents.full_score samples['urlScore'] = ''; samples['status'] = True; samples['errorCode'] = 'S0001'; samples['message'] = ""; else: samples['status'] = False; samples['errorCode'] = 'E0002'; samples['message'] = "Session is not match "; response.headers['KeyAuthorize'] = self.Keyauthorize; return samples;
class ActivateController(BaseController): # Uncomment this line if your controller requires an authenticated user # allow_only = predicates.not_anonymous() def __init__(self): dh = LogDBHandler( config=config,request=request); log.addHandler(dh) self.registerService = RegisterService(); self.sendMailService = SendMailService(); self.utility = Utility(); self.urlServer = model.SystemEnvironment.getServerUrl(); @expose() def index(self,*args,**kw): redirect( '/login') @expose('json') @expose('genshi:pollandsurvey.templates.register.activate_success') def value(self,*args, **kw): self.activate_code = args if(len(self.activate_code) > 0): self.userGenCode = model.UserGenCode.getByActivateCode(self.activate_code[0]) self.message = ""; if (self.userGenCode ): if ( not self.utility.convertToBool(self.userGenCode.success) ): if (self.utility.isActiveFromDate(self.utility.getCurrentDate() , self.userGenCode.create_date ,self.userGenCode.expire_date ) ): self.userGenCode.success = 1; self.message = LanguageObject.getdata("msg_success_activate") else : self.message = LanguageObject.getdata("msg_expire_activate") override_template(ActivateController.value, 'genshi:pollandsurvey.templates.register.reactivate') else: self.message = LanguageObject.getdata("msg_already_activate") else: self.message = LanguageObject.getdata("msg_not_found_activate") log.warning("Find not found activate code %s", self.activate_code ) else: #self.message = "Thank you!"; log.warning("User income is wrong,have not activate code") redirect("/") #for key in request.environ: print "%s --- %s" %( key, request.environ[key]); return dict(page='activate_success',message = self.message) @expose('pollandsurvey.templates.register.register_success') def reactivate(self,*args,**kw): if(kw.get('activate_code')): self.userGenCode = model.UserGenCode.getByActivateCode(kw.get('activate_code')); if self.userGenCode : self.user = model.UserService.getByUserId(self.userGenCode.user_id); self.userGenCode = self.registerService.reActivateUserGenCode(self.userGenCode,self.user); self.emailValues={}; self.emailValues['user_name'] = self.user.display_name; self.emailValues['email'] = self.user.email_address; # self.emailValues['password'] = self.password; self.emailValues['activate_url'] = request.application_url + "/activate/value/" + str(self.userGenCode.code); self.sendMailService = SendMailService(); self.sendMailService.sendreActivate(self.emailValues); self.sendMailService.start(); else: log.warn("user gen code is not exits ") return dict(page='register_success') @expose('pollandsurvey.templates.message.index') def canceldeactive(self,*args,**kw): self.title ="test" self.message = LanguageObject.getdata("msg_already_deactivate") if(len(args) >0 and args[0] != None): self.userGenCode = model.UserGenCode.getByDeactivateCode(args[0]); if self.userGenCode: self.user = model.User.getId(self.userGenCode.user_id) self.user.active = 1 self.userGenCode.success = 0 self.emailValues={}; self.emailValues['user_name'] = self.user.display_name; self.emailValues['email'] = self.user.email_address; # self.emailValues['password'] = self.password; self.sendMailService = SendMailService(); self.sendMailService.sendWelcomeActivate(self.emailValues); self.sendMailService.start(); self.message =LanguageObject.getdata("msg_success_deactivate") else: self.message = LanguageObject.getdata("failed") return dict(page='canceldeactivate', title=self.title, message=self.message)