예제 #1
0
def db_refresh_memory_variables(store):
    """
    This routine loads in memory few variables of node and notification tables
    that are subject to high usage.
    """
    node_ro = ObjectDict(NodeFactory(store).admin_export())

    GLSettings.memory_copy = node_ro

    GLSettings.memory_copy.accept_tor2web_access = {
        'admin': node_ro.tor2web_admin,
        'custodian': node_ro.tor2web_custodian,
        'whistleblower': node_ro.tor2web_whistleblower,
        'receiver': node_ro.tor2web_receiver,
        'unauth': node_ro.tor2web_unauth
    }

    enabled_langs = models.l10n.EnabledLanguage.list(store)
    GLSettings.memory_copy.languages_enabled = enabled_langs

    notif_ro = ObjectDict(NotificationFactory(store).admin_export())

    GLSettings.memory_copy.notif = notif_ro

    if GLSettings.developer_name:
        GLSettings.memory_copy.notif.source_name = GLSettings.developer_name

    if GLSettings.disable_mail_notification:
        GLSettings.memory_copy.notif.disable_admin_notification_emails = True
        GLSettings.memory_copy.notif.disable_custodian_notification_emails = True
        GLSettings.memory_copy.notif.disable_receiver_notification_emails = True

    GLSettings.memory_copy.private = ObjectDict(
        PrivateFactory(store).mem_copy_export())
예제 #2
0
def my_parse_config(filename):
    cp = ConfigParser.RawConfigParser()
    cp.read([filename])

    conf = dict(raw=cp, config_file=filename)

    # server settings
    conf["debug"] = tryget(cp.getboolean, "server", "debug", False)
    conf["xheaders"] = tryget(cp.getboolean, "server", "xheaders", False)
    conf["cookie_secret"] = cp.get("server", "cookie_secret")
    conf["xsrf_cookies"] = tryget(cp.getboolean,
                                  "server", "xsrf_cookies", False)

    # make relative path absolute to this file's parent directory
    root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
    getpath = lambda k, v: os.path.join(root, tryget(cp.get, k, v))

    # locale, template and static directories
    conf["locale_path"] = getpath("frontend", "locale_path")
    conf["static_path"] = getpath("frontend", "static_path")
    conf["template_path"] = getpath("frontend", "template_path")

    # sqlite support
    if tryget(cp.getboolean, "sqlite", "enabled", False) is True:
        conf["sqlite_settings"] = \
        ObjectDict(database=cp.get("sqlite", "database"))

    # redis support
    if tryget(cp.getboolean, "redis", "enabled", False) is True:
        conf["redis_settings"] = ObjectDict(
                    unixsocket=tryget(cp.get, "redis", "unixsocket", None),
                    host=tryget(cp.get, "redis", "host", "127.0.0.1"),
                    port=tryget(cp.getint, "redis", "port", 6379),
                    dbid=tryget(cp.getint, "redis", "dbid", 0),
                    poolsize=tryget(cp.getint, "redis", "poolsize", 10))

    # mysql support
    if tryget(cp.getboolean, "mysql", "enabled", False) is True:
        conf["mysql_settings"] = ObjectDict(
                    host=cp.get("mysql", "host"),
                    port=cp.getint("mysql", "port"),
                    username=tryget(cp.get, "mysql", "username"),
                    password=tryget(cp.get, "mysql", "password"),
                    database=tryget(cp.get, "mysql", "database"),
                    poolsize=tryget(cp.getint, "mysql", "poolsize", 10),
                    debug=tryget(cp.getboolean, "mysql", "debug", False),
                    ping=tryget(cp.getint, "mysql", "ping_interval"))

    # email support
    if tryget(cp.getboolean, "email", "enabled", False) is True:
        conf["email_settings"] = ObjectDict(
                    host=cp.get("email", "host"),
                    port=tryget(cp.getint, "email", "port"),
                    tls=tryget(cp.getboolean, "email", "tls"),
                    username=tryget(cp.get, "email", "username"),
                    password=tryget(cp.get, "email", "password"))

    return conf
예제 #3
0
파일: config.py 프로젝트: hellais/cyclone
def parse_config(filename):
    cfg = ConfigParser.RawConfigParser()
    with open(filename) as fp:
        cfg.readfp(fp)

    settings = {}

    # web server settings
    settings["debug"] = xget(cfg.getboolean, "server", "debug", False)
    settings["xheaders"] = xget(cfg.getboolean, "server", "xheaders", False)
    settings["cookie_secret"] = cfg.get("server", "cookie_secret")
    settings["xsrf_cookies"] = xget(cfg.getboolean, "server", "xsrf_cookies",
                                    False)

    # get project's absolute path
    root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
    getpath = lambda k, v: os.path.join(root, xget(cfg.get, k, v))

    # locale, template and static directories' path
    settings["locale_path"] = getpath("frontend", "locale_path")
    settings["static_path"] = getpath("frontend", "static_path")
    settings["template_path"] = getpath("frontend", "template_path")

    # sqlite support
    if xget(cfg.getboolean, "sqlite", "enabled", False):
        settings["sqlite_settings"] = ObjectDict(
            database=cfg.get("sqlite", "database")
        )
    else:
        settings["sqlite_settings"] = None

    # redis support
    if xget(cfg.getboolean, "redis", "enabled", False):
        settings["redis_settings"] = ObjectDict(
            host=cfg.get("redis", "host"),
            port=cfg.getint("redis", "port"),
            dbid=cfg.getint("redis", "dbid"),
            poolsize=cfg.getint("redis", "poolsize"),
        )
    else:
        settings["redis_settings"] = None

    # mysql support
    if xget(cfg.getboolean, "mysql", "enabled", False):
        settings["mysql_settings"] = ObjectDict(
            host=cfg.get("mysql", "host"),
            port=cfg.getint("mysql", "port"),
            username=xget(cfg.get, "mysql", "username"),
            password=xget(cfg.get, "mysql", "password"),
            database=xget(cfg.get, "mysql", "database"),
            poolsize=xget(cfg.getint, "mysql", "poolsize", 10),
            debug=xget(cfg.getboolean, "mysql", "debug", False),
        )
    else:
        settings["mysql_settings"] = None

    # it must always return a dict
    return settings
예제 #4
0
def parse_config(filename=None):
    global CONFIG_FILE_PATH
    if CONFIG_FILE_PATH is None and os.path.isfile(filename):
        CONFIG_FILE_PATH = os.path.abspath(filename)
    cfg = ConfigParser.RawConfigParser()
    with open(filename) as fp:
        cfg.readfp(fp)

    settings = {}

    # web server settings
    settings["debug"] = xget(cfg.getboolean, "server", "debug", False)
    settings["base_url"] = cfg.get("server", "base_url")

    # get project's absolute path
    root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
    print root
    getpath = lambda k, v: os.path.join(root, xget(cfg.get, k, v))

    # template and static directories' path
    settings["static_path"] = getpath("frontend", "static_path")
    settings["template_path"] = getpath("frontend", "template_path")

    # postgresql support
    if xget(cfg.getboolean, "postgresql", "enabled", False):
        settings["postgresql_settings"] = ObjectDict(
            host=cfg.get("postgresql", "host"),
            port=cfg.getint("postgresql", "port"),
            database=cfg.get("postgresql", "database"),
            poolsize=cfg.getint("postgresql", "poolsize"),
            username=cfg.get("postgresql", "username"),
            password=cfg.get("postgresql", "password"))
    else:
        settings["postgresql_settings"] = None

    # search engine
    if xget(cfg.getboolean, "search_engine", "enabled", False):
        settings['search_engine'] = ObjectDict(
            host=cfg.get('search_engine', 'host'),
            port=cfg.get('search_engine', 'port'),
            index=cfg.get('search_engine', 'index'),
            document_type=cfg.get('search_engine', 'document_type'))
    else:
        settings["search_engine"] = None

    #Neo4j server
    if xget(cfg.getboolean, "neo4j", "enabled", False):
        settings["neo4j"] = ObjectDict(host=cfg.get("neo4j", "host"),
                                       port=cfg.getint("neo4j", "port"))
    else:
        settings["neo4j"] = None

    return settings
예제 #5
0
 def get_current_user(self):
     session_opr = ObjectDict()
     session_opr.username = '******'
     session_opr.ipaddr = self.request.remote_ip
     session_opr.opr_type = 0
     session_opr.login_time = utils.get_currtime()
     return session_opr
예제 #6
0
 def generate(self, **kwargs):
     """Generate this template with the given arguments."""
     namespace = {
         "escape": escape.xhtml_escape,
         "xhtml_escape": escape.xhtml_escape,
         "url_escape": escape.url_escape,
         "json_encode": escape.json_encode,
         "squeeze": escape.squeeze,
         "linkify": escape.linkify,
         "datetime": datetime,
         "_utf8": escape.utf8,  # for internal use
         "_string_types": (unicode, bytes_type),
         # __name__ and __loader__ allow the traceback mechanism to find
         # the generated source code.
         "__name__": self.name.replace('.', '_'),
         "__loader__": ObjectDict(get_source=lambda name: self.code),
     }
     namespace.update(self.namespace)
     namespace.update(kwargs)
     exec self.compiled in namespace
     execute = namespace["_execute"]
     # Clear the traceback module's cache of source data now that
     # we've generated a new template (mainly for this module's
     # unittests, where different tests reuse the same name).
     linecache.clearcache()
     try:
         return execute()
     except Exception:
         formatted_code = _format_code(self.code).rstrip()
         log.msg("%s code:" % self.name)
         for line in formatted_code.split("\n"):
             log.msg(line)
         raise
예제 #7
0
파일: base.py 프로젝트: lxyjyy/ToughRADIUS
 def set_session_user(self, customer, ipaddr, login_time):
     session_user = ObjectDict()
     session_user.username = customer.customer_name
     session_user.cid = customer.customer_id
     session_user.ipaddr = ipaddr
     session_user.login_time = login_time
     self.session['session_user'] = session_user
     self.session.save()
예제 #8
0
파일: base.py 프로젝트: vvhh2002/toughwlan
 def set_session_user(self, username, ipaddr, login_time, **kwargs):
     session_user = ObjectDict()
     session_user.username = username
     session_user.ipaddr = ipaddr
     session_user.login_time = login_time
     session_user.update(**kwargs)
     self.session['session_user'] = session_user
     self.session.save()
예제 #9
0
 def set_session_user(self, username, ipaddr, opr_type, login_time):
     session_opr = ObjectDict()
     session_opr.username = username
     session_opr.ipaddr = ipaddr
     session_opr.opr_type = opr_type
     session_opr.login_time = login_time
     self.session['session_opr'] = session_opr
     self.session.save()
예제 #10
0
 def set_session_user(self, uid, username, ipaddr, login_time):
     session_user = ObjectDict()
     session_user.uid = uid
     session_user.username = username
     session_user.ipaddr = ipaddr
     session_user.login_time = login_time
     self.session['session_user'] = session_user
     self.session.save()
예제 #11
0
 def test_object_dict(self):
     od = ObjectDict()
     self.assertRaises(AttributeError, getattr, od, "something")
     od["foo"] = "bar"
     self.assertEqual(od['foo'], "bar")
     self.assertEqual(od.foo, "bar")
     od.rah = "meow"
     self.assertEqual(od['rah'], "meow")
예제 #12
0
 def get_current_user(self):
     username = self.get_secure_cookie("portal_user")
     if not username: return None
     ipaddr = self.get_secure_cookie("portal_user_ip")
     user = ObjectDict()
     user.username = username
     user.ipaddr = ipaddr
     return user
예제 #13
0
    def get_current_user(self):
        return self.session.get("session_user")
        if not username: return None

        user = ObjectDict()
        user.username = username
        user.ipaddr = self.session.get("tr_login_ip")
        user.login_time = self.session.get("tr_login_time")
        return user
예제 #14
0
파일: base.py 프로젝트: talkincode/ToughNMS
    def get_current_user(self):
        username = self.get_secure_cookie("opr_name")
        if not username: return None
        ipaddr = self.get_secure_cookie("opr_login_ip")
        opr_type = int(self.get_secure_cookie("opr_type"))
        login_time = self.get_secure_cookie("opr_login_time")

        user = ObjectDict()
        user.username = username
        user.ipaddr = ipaddr
        user.opr_type = opr_type
        user.login_time = login_time
        return user
예제 #15
0
 def set_session_user(self, username, ipaddr, opr_type, login_time):
     session_opr = ObjectDict()
     session_opr.username = username
     session_opr.ipaddr = ipaddr
     session_opr.opr_type = opr_type
     session_opr.login_time = login_time
     session_opr.resources = [
         r.rule_path
         for r in self.db.query(models.SysOperatorRule).filter_by(
             operator_name=username)
     ]
     self.session['session_opr'] = session_opr
     self.session.save()
예제 #16
0
 def set_session_user(self, username, ipaddr, opr_type, login_time):
     session_opr = ObjectDict()
     session_opr.operator_name = username
     session_opr.username = username
     session_opr.operate_ip = ipaddr
     session_opr.ipaddr = ipaddr
     session_opr.opr_type = opr_type
     session_opr.login_time = login_time
     session_opr.resources = [ r.rule_path for r in self.db.query(models.TrOperatorRule).filter_by(operator_name=username) ]
     _agency = self.db.query(models.TrAgency).filter_by(operator_name=username).first()
     session_opr.agency_id = _agency.id if _agency else None
     session_opr.agency_name = _agency.agency_name if _agency else None
     self.session['session_opr'] = session_opr
     self.session.save()
     return
예제 #17
0
    def test_001_successful_session_update_on_unauth_request(self):
        date1 = utility.datetime_now()
        
        GLSetting.sessions = {}
        GLSetting.sessions[u'antani'] = ObjectDict()
        GLSetting.sessions[u'antani']['user_id'] = u'admin'
        GLSetting.sessions[u'antani']['role'] = u'admin'
        GLSetting.sessions[u'antani']['id'] = u'antani'
        GLSetting.sessions[u'antani']['refreshdate'] = date1

        handler = self.request({}, headers={'X-Session': 'antani'})
        yield handler.get()
        
        date2 = GLSetting.sessions.values()[0].refreshdate
        
        self.assertNotEqual(date1, date2)
예제 #18
0
 def set_session_user(self, uid, username, ipaddr, login_time, status,
                      expire_date, create_time, product_policy,
                      product_name):
     session_user = ObjectDict()
     session_user.uid = uid
     session_user.username = username
     session_user.ipaddr = ipaddr
     session_user.login_time = login_time
     session_user.status = status
     session_user.expire_date = expire_date
     session_user.create_time = create_time
     session_user.product_policy = product_policy
     session_user.product_name = product_name
     self.session['session_user'] = session_user
     self.session.save()
     return
예제 #19
0
    def test_001_successful_session_expiry_on_admin_auth_request(self):
    
        date1 = utility.datetime_null() # oh a very old date!
        
        GLSetting.sessions = {}
        GLSetting.sessions[u'antani'] = ObjectDict()
        GLSetting.sessions[u'antani']['user_id'] = u'admin'
        GLSetting.sessions[u'antani']['role'] = u'admin'
        GLSetting.sessions[u'antani']['id'] = u'antani'
        GLSetting.sessions[u'antani']['refreshdate'] = date1

        handler = self.request({}, headers={'X-Session': 'antani'})

        self.assertRaises(errors.AdminSessionExpired, handler.get)
        
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSetting.sessions.keys()), 0)
예제 #20
0
 def generate(self, **kwargs):
     """Generate this template with the given arguments."""
     namespace = {
         "escape": escape.xhtml_escape,
         "xhtml_escape": escape.xhtml_escape,
         "url_escape": escape.url_escape,
         "json_encode": escape.json_encode,
         "squeeze": escape.squeeze,
         "linkify": escape.linkify,
         "datetime": datetime,
         "_utf8": escape.utf8,  # for internal use
         "_string_types": (unicode_type, bytes_type),
         # __name__ and __loader__ allow the traceback mechanism to find
         # the generated source code.
         "__name__": self.name.replace('.', '_'),
         "__loader__": ObjectDict(get_source=lambda name: self.code),
     }
     namespace.update(self.namespace)
     namespace.update(kwargs)
     exec_in(self.compiled, namespace)
     execute = namespace["_execute"]
     # Clear the traceback module's cache of source data now that
     # we've generated a new template (mainly for this module's
     # unittests, where different tests reuse the same name).
     linecache.clearcache()
     try:
         rv = execute()
         assert isinstance(rv, Deferred), rv
         if hasattr(rv, "result"):
             # Deferred is already resolved.
             # Return the result immidiatly to avoid compatibility problems.
             rv = rv.result
             if isinstance(rv, Failure):
                 rv.raiseException()
         return rv
     except:
         raise TemplateError(
             "Error executing template " + self.name + ":\n" +
             _format_code(traceback.format_exception(*sys.exc_info())))
예제 #21
0
파일: web.py 프로젝트: rmax/yatiri
    def fetch_docs(self, query, categories=()):
        page = self.get_arg('page', self.page)
        try:
            self.page = int(page)
        except ValueError:
            self.page = 1

        offset = self.limit * (self.page - 1)
        try:
            data = yield self.client.search(query, categories,
                                            offset=offset, limit=self.limit)
        except Exception as e:
            self.logerr('error while retrieveing results for {!r}'.format(query))
            self.render_error()
            defer.returnValue(None)

        if 'error' in data:
            self.logerr('error from search search: {!r}'.format(data))
            self.render_error()
            defer.returnValue(None)

        results = []
        for ret in data['docs']:
            info = self.corpus_db.get(ret['id'])
            if not info:
                self.log('document key without record {!r}'.format(ret))
                continue
            if any(f not in info for f in ('headline', 'body', 'url')):
                self.log("Document with missing fields: {!r}".format(info))
                break
            doc = ObjectDict((k,v) for (k,v) in ret.items()
                             if not k.startswith('_'))
            doc.update(info)
            results.append(doc)

        defer.returnValue((data['total'], results))
예제 #22
0
def parse_config(filename=None):
    if filename is None:
        filename = config_file_path()
    global CONFIG_FILE_PATH
    if CONFIG_FILE_PATH is None and os.path.isfile(filename):
        CONFIG_FILE_PATH = os.path.abspath(filename)
    cfg = ConfigParser.RawConfigParser()
    with open(filename) as fp:
        cfg.readfp(fp)

    settings = {}

    # web server settings
    settings["debug"] = xget(cfg.getboolean, "server", "debug", False)
    settings["xheaders"] = xget(cfg.getboolean, "server", "xheaders", False)
    settings["enable_logging"] = xget(cfg.getboolean, "server",
                                      "enable_logging", False)

    settings["enable_caching"] = xget(cfg.getboolean, "server",
                                      "enable_caching", False)
    settings["base_url"] = cfg.get("server", "base_url")

    # get project's absolute path
    root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
    print root
    getpath = lambda k, v: os.path.join(root, xget(cfg.get, k, v))

    # locale, template and static directories' path
    settings["locale_path"] = getpath("frontend", "locale_path")
    settings["static_path"] = getpath("frontend", "static_path")
    settings["template_path"] = getpath("frontend", "template_path")
    settings["project_selection"] = cfg.get("frontend", "project_selection")

    # postgresql support
    if xget(cfg.getboolean, "postgresql", "enabled", False):
        settings["postgresql_settings"] = ObjectDict(
            host=cfg.get("postgresql", "host"),
            port=cfg.getint("postgresql", "port"),
            database=cfg.get("postgresql", "database"),
            poolsize=cfg.getint("postgresql", "poolsize"),
            username=cfg.get("postgresql", "username"),
            password=cfg.get("postgresql", "password"))
    else:
        settings["postgresql_settings"] = None

    # redis support
    if xget(cfg.getboolean, "redis", "enabled", False):
        settings["redis_settings"] = ObjectDict(
            host=cfg.get("redis", "host"),
            port=cfg.getint("redis", "port"),
            dbid=cfg.getint("redis", "dbid"),
            poolsize=cfg.getint("redis", "poolsize"),
        )
    else:
        settings["redis_settings"] = None

    settings['search_engine'] = ObjectDict(
        host=cfg.get('search_engine', 'host'),
        port=cfg.get('search_engine', 'port'),
        index=cfg.get('search_engine', 'index'))

    return settings