コード例 #1
0
 def render_page(self, errors=[], success=[]):
     ''' Small wrap for self.render to cut down on lenghty params '''
     current_theme = Theme.by_cssfile(self.session["theme"])
     self.render("user/settings.html",
                 errors=errors,
                 success=success,
                 current_theme=current_theme)
コード例 #2
0
 def render_page(self, errors=[], success=[]):
     ''' Small wrap for self.render to cut down on lenghty params '''
     current_theme = Theme.by_cssfile(self.session["theme"])
     self.render("user/settings.html",
         errors=errors,
         success=success,
         current_theme=current_theme
     )
コード例 #3
0
 def render_page(self, errors=[], success=[]):
     ''' Small wrap for self.render to cut down on lenghty params '''
     self.add_content_policy('script', "'unsafe-eval'")
     current_theme = Theme.by_id(self.session["theme_id"])
     self.add_content_policy('script', 'www.google.com')
     self.add_content_policy('img', 'www.google.com')
     self.render("user/settings.html",
                 errors=errors,
                 success=success,
                 current_theme=current_theme)
コード例 #4
0
ファイル: UserHandlers.py プロジェクト: AnarKyx01/RootTheBox
 def render_page(self, errors=[], success=[]):
     ''' Small wrap for self.render to cut down on lenghty params '''
     self.add_content_policy('script', "'unsafe-eval'")
     current_theme = Theme.by_id(self.session["theme_id"])
     self.add_content_policy('script', 'www.google.com')
     self.add_content_policy('img', 'www.google.com')
     self.render("user/settings.html",
                 errors=errors,
                 success=success,
                 current_theme=current_theme)
コード例 #5
0
class AppTheme(UIModule):

    theme = Theme.by_name(options.default_theme)

    def render(self, *args, **kwargs):
        ''' Includes different CSS themes based on user prefs '''
        if self.handler.session is not None:
            return self.render_string(
                "theme/theme.html", theme_files=self.handler.session['theme'])
        else:
            return self.render_string("theme/theme.html",
                                      theme_files=self.theme)
コード例 #6
0
 def post_theme(self, *args, **kwargs):
     ''' Change per-user theme '''
     theme = Theme.by_uuid(self.get_argument('theme_uuid', ''))
     if theme is not None:
         self.session['theme'] = ''.join(theme.cssfile)
         self.session.save()
         user = self.get_current_user()
         user.theme_id = theme.id
         self.dbsession.add(user)
         self.dbsession.commit()
         self.render_page()
     else:
         self.render_page(errors=["Theme does not exist."])
コード例 #7
0
 def post_theme(self, *args, **kwargs):
     ''' Change per-user theme '''
     theme = Theme.by_uuid(self.get_argument('theme_uuid', ''))
     if theme is not None:
         self.session['theme'] = ''.join(theme.cssfile)
         self.session.save()
         user = self.get_current_user()
         user.theme_id = theme.id
         self.dbsession.add(user)
         self.dbsession.commit()
         self.render_page()
     else:
         self.render_page(errors=["Theme does not exist."])
コード例 #8
0
class AppTheme(UIModule):

    theme = Theme.by_name(options.default_theme)

    def render(self, *args, **kwargs):
        """ Includes different CSS themes based on user prefs """

        if options.allow_user_to_change_theme and (self.handler.session
                                                   is not None):
            return self.render_string(
                "theme/theme.html", theme_files=self.handler.session["theme"])
        else:
            return self.render_string("theme/theme.html",
                                      theme_files=self.theme)
コード例 #9
0
ファイル: UserHandlers.py プロジェクト: garanews/RootTheBox
 def render_page(self, errors=[], success=[]):
     """ Small wrap for self.render to cut down on lengthy params """
     user = self.get_current_user()
     self.add_content_policy("script", "'unsafe-eval'")
     current_theme = Theme.by_id(self.session["theme_id"])
     self.add_content_policy("script", "www.google.com")
     self.add_content_policy("img", "www.google.com")
     self.render(
         "user/settings.html",
         errors=errors,
         success=success,
         current_theme=current_theme,
         user=user,
     )
コード例 #10
0
 def create_login_session(self, user):
     self.start_session()
     theme = Theme.by_id(user.theme_id)
     if user.team is not None:
         self.session["team_id"] = int(user.team.id)
     self.session["user_id"] = int(user.id)
     self.session["user_uuid"] = user.uuid
     self.session["handle"] = user.handle
     self.session["theme"] = [str(f) for f in theme.files]
     self.session["theme_id"] = int(theme.id)
     if user.is_admin():
         self.session["menu"] = "admin"
     else:
         self.session["menu"] = "user"
     self.session.save()
コード例 #11
0
def setup():
    """
    Creates/bootstraps the database.

    If you're a real developer you'll figure out how to remove the
    warning yourself. Don't merge any code the removes it.
    """
    is_devel = options.setup.startswith("dev")
    if is_devel:
        print("%sWARNING:%s Setup is in development mode %s" %
              (WARN + bold, W, WARN))
        message = "I know what the f**k I am doing"
        resp = input(PROMPT + 'Please type "%s": ' % message)
        if resp.replace('"', "").lower().strip() != message.lower():
            os._exit(1)
    else:
        is_devel = options.setup.startswith("docker")
    print(INFO + "%s : Creating the database ..." % current_time())
    from setup.create_database import create_tables, engine, metadata

    create_tables(engine, metadata, options.log_sql)
    sys.stdout.flush()

    from models.Theme import Theme

    themes = Theme.all()
    if len(themes) > 0:
        print(INFO + "It looks like database has already been set up.")
        return

    print(INFO + "%s : Bootstrapping the database ..." % current_time())
    import setup.bootstrap

    # Display Details
    if is_devel:
        environ = bold + R + "Development bootstrap:"
        details = C + "Admin Username: admin, Password: rootthebox" + W
    else:
        environ = bold + "Production bootstrap" + W
        details = ""
    from handlers import update_db

    update_db(False)
    sys.stdout.flush()
    try:
        print(INFO + "%s %s" % (environ, details), flush=True)
    except:
        print(INFO + "%s %s" % (environ, details))
コード例 #12
0
ファイル: UserHandlers.py プロジェクト: garanews/RootTheBox
 def post_theme(self, *args, **kwargs):
     """ Change per-user theme """
     if not options.allow_user_to_change_theme:
         self.render_page(errors=["Users are not allowed to change themes"])
         return
     theme = Theme.by_uuid(self.get_argument("theme_uuid", ""))
     if theme is not None:
         self.session["theme_id"] = theme.id
         self.session["theme"] = [str(f) for f in theme.files]
         self.session.save()
         user = self.get_current_user()
         user.theme_id = theme.id
         self.dbsession.add(user)
         self.dbsession.commit()
         self.render_page()
     else:
         self.render_page(errors=["Theme does not exist."])
コード例 #13
0
ファイル: UserHandlers.py プロジェクト: moloch--/RootTheBox
 def post_theme(self, *args, **kwargs):
     ''' Change per-user theme '''
     if not options.allow_user_to_change_theme:
         self.render_page(errors=["Users are not allowed to change themes"])
         return
     theme = Theme.by_uuid(self.get_argument('theme_uuid', ''))
     if theme is not None:
         self.session['theme_id'] = theme.id
         self.session['theme'] = [str(f) for f in theme.files]
         self.session.save()
         user = self.get_current_user()
         user.theme_id = theme.id
         self.dbsession.add(user)
         self.dbsession.commit()
         self.render_page()
     else:
         self.render_page(errors=["Theme does not exist."])
コード例 #14
0
    def refresh_app_config(self):
        # Update default theme
        self.application.ui_modules["Theme"].theme = Theme.by_name(
            options.default_theme)

        # Callback functions  - updates and starts/stops the botnet callback
        self.application.settings["score_bots_callback"].stop()
        self.application.score_bots_callback = PeriodicCallback(
            score_bots, options.bot_reward_interval)
        if options.use_bots:
            logging.info("Starting botnet callback function")
            self.application.settings["score_bots_callback"].start()

        logging.info("Restarting history callback function")
        game_history = GameHistory.instance()
        self.application.settings["history_callback"].stop()
        self.application.history_callback = PeriodicCallback(
            game_history.take_snapshot, options.history_snapshot_interval)
        self.application.settings["history_callback"].start()
コード例 #15
0
 def successful_login(self, user):
     ''' Called when a user successfully logs in '''
     logging.info("Successful login: %s from %s" % (
         user.handle, self.request.remote_ip,
     ))
     user.last_login = datetime.now()
     user.logins += 1
     self.dbsession.add(user)
     self.dbsession.commit()
     self.start_session()
     theme = Theme.by_id(user.theme_id)
     if user.team is not None:
         self.session['team_id'] = int(user.team.id)
     self.session['user_id'] = int(user.id)
     self.session['user_uuid'] = user.uuid
     self.session['handle'] = user.handle
     self.session['theme'] = theme.cssfile
     if user.has_permission(ADMIN_PERMISSION):
         self.session['menu'] = 'admin'
     else:
         self.session['menu'] = 'user'
     self.session.save()
コード例 #16
0
 def successful_login(self, user):
     """ Called when a user successfully logs in """
     logging.info("Successful login: %s from %s" %
                  (user.handle, self.request.remote_ip))
     user.last_login = datetime.now()
     user.logins += 1
     self.dbsession.add(user)
     self.dbsession.commit()
     self.start_session()
     theme = Theme.by_id(user.theme_id)
     if user.team is not None:
         self.session["team_id"] = int(user.team.id)
     self.session["user_id"] = int(user.id)
     self.session["user_uuid"] = user.uuid
     self.session["handle"] = user.handle
     self.session["theme"] = [str(f) for f in theme.files]
     self.session["theme_id"] = int(theme.id)
     if user.is_admin():
         self.session["menu"] = "admin"
     else:
         self.session["menu"] = "user"
     self.session.save()
コード例 #17
0
 def successful_login(self, user):
     ''' Called when a user successfully logs in '''
     logging.info("Successful login: %s from %s" % (
         user.handle, self.request.remote_ip,
     ))
     user.last_login = datetime.now()
     user.logins += 1
     self.dbsession.add(user)
     self.dbsession.commit()
     self.start_session()
     theme = Theme.by_id(user.theme_id)
     if user.team is not None:
         self.session['team_id'] = int(user.team.id)
     self.session['user_id'] = int(user.id)
     self.session['user_uuid'] = user.uuid
     self.session['handle'] = user.handle
     self.session['theme'] = [str(f) for f in theme.files]
     self.session['theme_id'] = int(theme.id)
     if user.has_permission(ADMIN_PERMISSION):
         self.session['menu'] = 'admin'
     else:
         self.session['menu'] = 'user'
     self.session.save()
コード例 #18
0
    (u"Amelia", u'amelia.min.css'),
    (u"Cyborg", u'cyborg.min.css'),
    (u"Readable", u'readable.min.css'),
    (u"Slate", u'slate.min.css'),
    (u"Spruce", u'spruce.min.css'),
    (u"United", u'united.min.css'),
    (u"Cerulean", u'cerulean.min.css'),
    (u"Journal", u'journal.min.css'),
    (u"Simplex", u'simplex.min.css'),
    (u"Spacelab", u'spacelab.min.css'),
    (u"Superhero", u'superhero.min.css'),
    (u"Geocities", u'geocities.min.css'),
]
for css in css_files:
    theme = Theme(
        name=css[0],
        cssfile=css[1],
    )
    dbsession.add(theme)
    dbsession.flush()

# Market Items
item = MarketItem(
    name=u"Source Code Market",
    price=500,
    image=u"source_code_market.png",
    description=
    u"Allows your team access to the Source Code Black Market where you can purchase leaked source code for certain target boxes.",
)
dbsession.add(item)
dbsession.flush()
コード例 #19
0
 def verifyTheme(theme):
     themeFound = Theme.find_one({'url': theme})
     if themeFound != None:
         return True
     return False
コード例 #20
0
 def insertTheme(theme):
     Theme.insert_one(theme)
コード例 #21
0
    (u"Amelia", [u'amelia.min.css']),
    (u"Cyborg", [u'cyborg.min.css']),
    (u"Readable", [u'readable.min.css']),
    (u"Slate", [u'slate.min.css']),
    (u"Spruce", [u'spruce.min.css']),
    (u"United", [u'united.min.css']),
    (u"Cerulean", [u'cerulean.min.css']),
    (u"Journal", [u'journal.min.css']),
    (u"Simplex", [u'simplex.min.css']),
    (u"Spacelab", [u'spacelab.min.css']),
    (u"Superhero", [u'superhero.min.css']),
    (u"Geocities", [u'geocities.min.css']),
    (u"386", [u'386.css', u'386.js', u'386.responsive.css']),
]
for css in css_files:
    theme = Theme(name=css[0])
    dbsession.flush()
    for f in css[1]:
        theme_file = ThemeFile(theme_id=theme.id, file_name=f)
        theme.files.append(theme_file)
        dbsession.add(theme_file)
    dbsession.add(theme)

# Market Items
item = MarketItem(
    name=u"Source Code Market",
    price=500,
    image=u"source_code_market.png",
    description=
    u"Allows your team access to the Source Code Black Market where you can purchase leaked source code for certain target boxes.",
)
コード例 #22
0
ファイル: User.py プロジェクト: pchabermann/RootTheBox
 def theme(self, value):
     theme = Theme.by_name(value)
     if theme:
         self.theme_id = theme.id
コード例 #23
0
ファイル: User.py プロジェクト: pchabermann/RootTheBox
 def theme(self):
     if self.theme_id:
         return Theme.by_id(self.theme_id).name
     else:
         return options.default_theme