Esempio n. 1
0
 def send_auth_captcha(identity):
     """Send authentication captcha to an identity, the identity can be a cellphone or an email.
     """
     if not identity:
         raise Exception('Identity is not provided.')
     if CELLPHONE_PATTERN.match(identity):
         user = User.objects.get(cellphone=identity, cellphoneBindingCaptcha__exists=False, status=1)
         now = datetime.now()
         user.cellphoneAuthCaptcha = Captcha(captcha=str(random())[2:8],
                                             expireTime=datetime.fromtimestamp(now.timestamp() + 30 * 60))
         user.updateTime = now
         user = user.save()
         template = Loader('templates/account/').load('cellphone_auth_captcha.txt')
         content = template.generate(captcha=user.cellphoneAuthCaptcha.captcha)
         send_sms(user.cellphone, content.decode('utf-8'))
         return user
     elif EMAIL_PATTERN.match(identity):
         user = User.objects.get(email=identity, emailBindingCaptcha__exists=False, status=1)
         now = datetime.now()
         user.emailAuthCaptcha = Captcha(captcha=md5((str(random())[2:]).encode('utf-8')).hexdigest(),
                                         expireTime=datetime.fromtimestamp(now.timestamp() + 24 * 60 * 60))
         user.updateTime = now
         user = user.save()
         template = Loader('templates/account/').load('email_auth_captcha.html')
         content = template.generate(captcha=user.emailAuthCaptcha.captcha)
         send_mail([user.email], '身份验证', content.decode('utf-8'))
         return user
     else:
         raise Exception('Invalid identity.')
Esempio n. 2
0
 def async_callback(self, async_result):
     """
     Callback executed once the function called by run_background() returns
      something, async_result single arg must be an HTMLAsyncResult instance.
     This callback is in charge to render the final HTML content returned to the client.
     """
     if not isinstance(async_result, HTMLAsyncResult):
         self.finish()
         return
     if async_result.secure_cookie != None and 'name' in async_result.secure_cookie and 'content' in async_result.secure_cookie:
         self.set_secure_cookie(async_result.secure_cookie['name'], async_result.secure_cookie['content'], expires_days=0.5)
     if async_result.http_code in (301, 302, 401) and async_result.redirection is not None:
         self.set_secure_cookie('referer_uri', self.request.uri, expires_days=0.5)
         self.redirect(async_result.redirection)
         return
     if async_result.http_code == 200:
         if async_result.template_path is not None:
             self.loader = Loader(async_result.template_path)
             self.write(self.loader.load(async_result.template_file).generate(**async_result.data))
             self.finish()
             return
         else:
             self.render(async_result.template_file, **async_result.data)
             return
     else:
         self.render(async_result.template_file, **async_result.data)
         return
Esempio n. 3
0
 def get(self, *args, **kwargs):
     """
     provide details of cpu and memory usage
     """
     context = {
         'cpu': {
             'user': psutil.cpu_times_percent().user,
             'system': psutil.cpu_times_percent().system,
             'idle': psutil.cpu_times_percent().idle,
             'iowait': psutil.cpu_times_percent().iowait,
             'usage': psutil.cpu_percent()
         },
         'memory': {
             'percent': psutil.virtual_memory().percent,
             'total': psutil.virtual_memory().total,
             'available': psutil.virtual_memory().available,
             'used': psutil.virtual_memory().used,
             'free': psutil.virtual_memory().free,
             'cached': psutil.virtual_memory().cached
         }
     }
     templateRoot = options.TEMPLATE_ROOT
     loader = Loader(templateRoot)
     templateName = 'stats.html'
     response = loader.load(templateName).generate(**context)
     self.write(response)
     self.finish()
Esempio n. 4
0
    def _do_send(self, params, to, subject, template_name):
        # Create message container - the correct MIME type is multipart/alternative.
        msg = MIMEMultipart('alternative')
        msg['Subject'] = subject
        msg['From'] = self.config['from'].encode('utf-8', 'ignore')
        msg['To'] = to

        # Create the body of the message (a plain-text and an HTML version).
        loader = Loader('./templates/mail')
        text = loader.load(template_name + '.txt').generate(**params)
        html = loader.load(template_name + '.html').generate(**params)
        # Record the MIME types of both parts - text/plain and text/html.
        part1 = MIMEText(text, 'plain')
        part2 = MIMEText(html, 'html')
        # Attach parts into message container.
        # According to RFC 2046, the last part of a multipart message, in this case
        # the HTML message, is best and preferred.
        msg.attach(part1)
        msg.attach(part2)

        # sendmail function takes 3 arguments: sender's address, recipient's address
        # and message to send - here it is sent as one string.
        if self.config['dummy']:
            self.logger.warning(
                'WARNING: Not sending e-mail to {0}, subj: {1}'.format(
                    msg['To'], subject))
        else:
            s = smtplib.SMTP(host=self.config['host'].encode(
                'utf-8', 'ignore'),
                             port=self.config['port'])
            s.starttls()
            s.login(self.config['login'].encode('utf-8', 'ignore'),
                    self.config['password'].encode('utf-8', 'ignore'))
            s.sendmail(msg['From'], [msg['To'], msg['From']], msg.as_string())
            s.quit()
Esempio n. 5
0
    def get(self, path):
        # Caching strategy.
        # 1. If we don't have a version parameter, redirect
        curVersion = self.get_version()
        try:
            version = url_escape(self.get_argument('v'))
        except web.MissingArgumentError:
            uri  = self.request.uri
            uri += '&' if self.request.query else '?'
            uri += 'v=%s' % curVersion
            self.redirect(uri)
            return
        # 2. Make sure version is correct
        if IMAGE_VERSION is not None and version != curVersion:
            uri = self.request.uri.replace('v=%s' % version, 'v=%s' % curVersion)
            self.redirect(uri)
            return

        if not path:
            path = 'index.html'

        loader = Loader(HTML_DIR)
        section = path.split('.')[0]
        try:
            context = getattr(self, section)()
        except AttributeError:
            context = {}
        context['cloud_url'] = CLOUD_HTTP_ADDRESS
        context['bufferSize'] = get_jack_buffer_size()
        context['sampleRate'] = get_jack_sample_rate()
        self.write(loader.load(path).generate(**context))
Esempio n. 6
0
 def __init__(self):
     self.requester = None
     self.Init = False
     self.Loader = Loader(POUTPUT_TEMPLATES_DIR)
     self.mNumLinesToShow = 15
     self.CounterList = []
     self.requester = requester
 def get(self):
     loader = Loader("./")
     bl = db.getAvailableBanksWithMark()
     t = util.getFetchedTime()
     self.write(
         loader.load("index.html").generate(availableBanks=bl,
                                            fetchedTime=t))
Esempio n. 8
0
 def write_error(self, status_code, **kwargs):
     if status_code in (404, 500):
         error_page = '{}.html'.format(status_code)
         if isfile(join(site_dir, error_page)):
             self.write(Loader(site_dir).load(error_page).generate())
         else:
             super().write_error(status_code, **kwargs)
Esempio n. 9
0
 def render_template(self, tpl, context):
     try:
         path, tpl = tpl.rsplit('/', 1)
     except ValueError:
         path = ''
     path = os.path.join(settings.TEMPLATE_PATH, 'social', path)
     return Loader(path).load(tpl).generate(**context)
Esempio n. 10
0
    def users_added_callback(self, users):
        '''
        Server url will be dynamic to work same code on different servers
        in case on user enrollment and iOS profile generation also.
        '''
        loader = Loader("/opt/toppatch/mv/media/app/")
        server_url = environ.get('SERVER_CNAME')
        ses_conn = ses.connect_to_region(
            'us-east-1',
            aws_access_key_id=environ.get('AWS_SES_ACCESS_KEY_ID'),
            aws_secret_access_key=environ.get('AWS_SES_SECRET_ACCESS_KEY'))
        for user in users:

            link = str(server_url) + '/enroll/' + \
                str(user.get('enrollment_id'))
            message = loader.load('user_enroll_mail.html').generate(
                company_name=user.get('company_name'),
                user_passwd=user.get('passcode'), activation_link=link)

            try:
                ses_conn.send_email('*****@*****.**',
                                    'MDM Enrollment verification', message,
                                    [user['email']], format='html')
            except Exception as err:
                print repr(err)
Esempio n. 11
0
def homepage(biothings, args):
    loader = Loader(templates.__path__[0])
    template = loader.load("home.html")
    return template.generate(alert='Front Page Not Configured.',
                             title='Biothings API',
                             contents=biothings.handlers.keys(),
                             support=biothings.metadata.types,
                             url='http://biothings.io/')
Esempio n. 12
0
 def __init__(self):
     super(SMTP,
           self).__init(host=opts.smtp_host,
                        ports=opts.smtp_port,
                        username=opts.smtp_username,
                        password=opts.smtp_password,
                        use_tls=smtp_use_tls,
                        template_loader=Loader(opts.email_template_path))
Esempio n. 13
0
 def __init__(self, **kwargs):
     mandatory_args = ["username", "password", "host", "port"]
     for x in mandatory_args:
         if kwargs.get(x, False) == False:
             raise ValueError("%s must be provided" % (x))
         self.__dict__[x] = kwargs[x]
     loader = Loader("templates/email")
     self.EMAIL_HTML_TEMPLATE = loader.load("document_send_email.html")
 async def get(self):
     reference = self.get_argument('reference', None)
     #if not reference: send error page
     feedbacks = await FeedbackService.get_all_feedback(reference)
     loader = Loader(self.get_template_path())
     self.write(
         loader.load('feedback_table.html').generate(feedbacks=feedbacks,
                                                     reference=reference))
Esempio n. 15
0
 def get(self, username):
     user = session.query(User).filter(User.username == username).first()
     token = user.generate_confirmation_token()
     message = Loader('templates').load('mail_template.html').generate(
         title="Tornado-blog", username=username, content=token)
     send_email(msg_to=user.email, message=message)
     self.render('login.html',
                 message='A new email has been sent to you email-address!')
Esempio n. 16
0
def generate_credentials():
    loader = Loader("static/auth")
    my_cred_file = loader.load("google_secret_format.txt")
    result = my_cred_file.generate().decode("utf-8") % (
        conf.GOOGLE_CLIENT_ID, conf.GOOGLE_PROJECT_ID,
        conf.GOOGLE_CLIENT_SECRET, conf.BASE_URL + "/docs/")
    with open(conf.CLIENT_SECRETS_FILE, "w") as cred_json:
        cred_json.write(result)
Esempio n. 17
0
    def add_dir(self, template_dir):
        """Add new template directory to loader

        :param template_dir: str of template directory.
        :return:
        """
        if template_dir in self._loaders:
            return
        self._loaders[template_dir] = Loader(template_dir)
Esempio n. 18
0
    def run(self):
        # log = Logger('ActivationWorkerThread')
        # TAG = 'run'
        print 'ActivationWorkerThread'

        ### load html file for rendering ####
        loader = Loader("/opt/toppatch/mv/media/app/")
        t_status = 'alert-danger'

        if self.hash_url:

            salt_key = environ.get('salt_key')
            json_url_key = environ.get('json_url_key')

            danger_signer = TimedJSONWebSignatureSerializer(json_url_key)

            try:
                data_dict = danger_signer.loads(self.hash_url, salt=salt_key)

                company_data = data_dict.get('cmd_hash')
                admin_data = data_dict.get('adm_hash')

                if company_data and admin_data:

                    admin = LoginDBHelper()

                    company_id = company_data
                    admin_id = admin_data
                    status = admin.set_login(admin_id, company_id)

                    if status:
                        message = '''Success! Please visit \
                    https://demo-mdm.toppatch.com and login using your admin \
                    email as username and password used at the time of \
                    Registration.
                        '''
                        message = message.replace('  ', '')
                        t_status = 'alert-success'
                    else:
                        message = "Mr. Intruder U r failed in this attemps.!!!"
                else:
                    message = "Mr. Intruder U r failed in this attemps.!!!"

            except SignatureExpired:
                message = 'Sorry! This link was already expired'

            except BadSignature:
                message = '''Thanks for visiting . Please try agian after \
                          some time to activate the link sent to you.'''

        else:
            message = 'Sorry! This link was already expired'

        self.request.write(loader.load("error_invalid.html").generate(
            message=message, status=t_status))
        tornado.ioloop.IOLoop.instance().add_callback(self.callback)
Esempio n. 19
0
 def __create_handler__(self, handler_name):
     loader = Loader(os.path.join(os.getcwd(), "templates", "bake"))
     temp_file = open(
         os.path.join(self.project_helper.get_handler_folder(),
                      handler_name + self.HANDLER_QUALIFIER + '.py'), 'w')
     temp_file.write(
         loader.load("base_handler.plate").generate(
             handler_name=handler_name))
     temp_file.close()
     logging.debug("[*] Finished generating " + temp_file.name)
Esempio n. 20
0
 def generate_string(self, file_template, template_values, file_values):
     loader = Loader(os.path.join(os.getcwd(), 'templates'))
     ret = loader.load(file_template, parent_path='./')
     try:
         content = ret.generate().replace(template_values, file_values)
     except TypeError:
         logging.error("template_values or file_values is not bytes.")
         pass
     else:
         return content
Esempio n. 21
0
 def generate_export_file(self, job_id):
     main_info = yield self.job_dao.query_job_base_info(job_id)
     if main_info['status'] not in [
             type_define.STATUS_JOB_REJECTED,
             type_define.STATUS_JOB_COMPLETED
     ]:
         self.finish_with_error(error_codes.EC_SYS_ERROR, '%s未归档')
     filename = 'job_%s_%s.html' % (job_id,
                                    main_info['title'].decode('utf-8'))
     dir_path = 'res/download/job_export'
     net_path = self.get_res_file_path(filename, dir_path)
     file_path = self.get_res_file_path(filename, dir_path, True)
     if os.path.isfile(file_path):
         raise gen.Return([net_path, file_path, filename])
     status_map = {
         type_define.STATUS_JOB_PROCESSING: '处理中',
         type_define.STATUS_JOB_COMPLETED: '已完成',
         type_define.STATUS_JOB_CANCEL: '已撤回',
         type_define.STATUS_JOB_REJECTED: '未通过',
     }
     main_info['status'] = status_map[main_info['status']]
     branch_id = self.get_argument('branch_id', None)
     node_list = yield self.job_dao.query_job_node_list(job_id, branch_id)
     for item in node_list:
         attachment_type = [
             [
                 'has_attachment', type_define.TYPE_JOB_ATTACHMENT_NORMAL,
                 'attachment'
             ],
             [
                 'has_img', type_define.TYPE_JOB_ATTACHMENT_IMG,
                 'img_attachment'
             ],
         ]
         for _type in attachment_type:
             if item[_type[0]]:
                 attachment = yield self.job_dao.query_node_attachment_list(
                     item['id'], _type[1])
                 item[_type[2]] = attachment
         content = self.abstract_job_content(item['content'])
         content = self.html_to_text(content)
         item['content'] = content
     if node_list[0]['rec_set']:
         rec_set = yield self.job_dao.query_uid_set(node_list[0]['rec_set'])
     else:
         rec_set = None
     loader = Loader(self.get_template_path(), autoescape=None)
     result = loader.load('base_job_export.html').generate(
         rec_set=rec_set,
         main_info=main_info,
         node_list=node_list,
     )
     fid = codecs.open(file_path, 'w', encoding='utf-8')
     fid.write(result.decode('utf-8'))
     raise gen.Return([net_path, file_path, filename])
Esempio n. 22
0
File: smtp.py Progetto: iselu/selene
 def __init__(self):
     super(SMTP, self).__init__(host=opts.smtp_host,
                                port=opts.smtp_port,
                                username=opts.smtp_username,
                                password=opts.smtp_password,
                                use_tls=opts.smtp_use_tls,
                                template_loader=Loader(
                                    os.path.join(opts.themes_directory,
                                                 opts.selected_theme,
                                                 'messages')),
                                url=opts.base_url)
Esempio n. 23
0
def render_template(template_name, **kwargs):
    global template_loader
    if template_loader is None or True:
        # XXX: enable template caching
        template_loader = Loader('templates')
    return template_loader.load(template_name).generate(
        **kwargs,
        lc = lc.get_dict(),
        conf = conf.configuration,
        comp = competition,
    )
Esempio n. 24
0
 def registration(self):
     print("ConfReg:", self.request.data)
     if "t" not in self.request.data:
         raise Exception("There is no token in request")
     confirm_data_table = Confirm_Data()
     confirm = confirm_data_table.get_data_by_token(self.request.data["t"])
     if confirm is None:
         raise Exception("Confirm registration token not find")
     print("RegData:", )
     loader = Loader("templates")
     return loader.load("base.html").generate()
class TemplateHandler(RequestHandler):
    etc_loader = Loader(args.etcdir)
    admin_loader = Loader(args.admindir)

    def initialize(self, path=None):
        # GuiServerPart passes this in, so handle it
        pass

    def get_template_path(self):
        # Return the directory we put our templated index.html in
        return args.templatedir

    def get(self, path):
        if path == "details":
            # /details/... shouldn't have bottom nav
            self.render("withoutnav.html")
        else:
            # /gui/... should have index.html, templated with nav
            self.render("index.html", etc_loader=self.etc_loader,
                        admin_loader=self.admin_loader)
Esempio n. 26
0
 async def get(self):
     handlers = []
     for x in self.application.handlers_api:
         # FIXME
         url = x.reverse().replace('?', '')
         handlers.append({'name': x.name, 'url': url})
     if handlers:
         handlers = sorted(handlers, key=lambda k: k['name'])
     loader = Loader('politicos_api/templates')
     content = loader.load('routes.html').generate(handlers=handlers)
     await self.write(content)
Esempio n. 27
0
    def create_files(self):
        self.loader = Loader(os.path.join(os.getcwd(), "templates"))

        for template, file_name in self.templates:
            temp_file = open(
                os.path.join(os.getcwd(), self.project_name, file_name), 'w')
            temp_file.write(
                self.loader.load(template + ".plate").generate(
                    project_name=self.project_name))
            temp_file.close()
            logging.debug("[*] Finished generating " + template + " Template!")
Esempio n. 28
0
 def write_page(response, new_name, new_width, new_height, new_max_players,
                new_error):
     loader = Loader('templates/')
     page = loader.load('newgame.html').generate(
         app=App.instance,
         name=new_name,
         width=new_width,
         height=new_height,
         max_players=new_max_players,
         error=new_error)
     response.write(page)
Esempio n. 29
0
    def confirm_registration(self):
        try:
            print("ConfirmRegData:", self.request.data)
            Confirm_Data.clear_expired_rows()
            confirm_table = Confirm_Data()
            loader = Loader("templates")

            return loader.load("base.html").generate()
            return "OK"
        except Exception as e:
            raise e
Esempio n. 30
0
    def get(self, data):
        log = Logger('CheckInHandler Get')
        tag = 'Profile get method'
        user_agent = self.request.headers['User-Agent']

        if 'iPad' in user_agent or 'iPhone OS' in user_agent:

            loader = Loader("/opt/toppatch/mv/media/app/")
            self.write(
                loader.load("enroll_form.html").generate(
                    temp_enroll=data))
        elif 'Android' in user_agent:
            self.redirect('/android_profile.apk')
            log.i(tag, 'Downloading the Android APK')

        else:
            log.i(tag, 'Incorrect browser used in passverify')
            loader = Loader("/opt/toppatch/mv/media/app/")
            self.write(loader.load("error_invalid.html").generate(
                message='Please use Android or iOS device to open this link',
                status='alert-danger'))