* add scoreboard freeze
* delete excess div close tag
* filter out scores from team page when scoreboard freezes
* allow teams to see their full score and solves in team page
* fix unset place and score
* change parameter and filter out /solves for graph
* fix utils methods undefined
* add small notice about frozen scoreboard and resolve failing tests
* Update __init__.py
* Update scoreboard.py
* Extracting key checking logic to make it more extensible
* Add missing keys __init__ file
* Adding logging access and errors to Dockerfile
* Use template inheritance for page.html (#198)
* Fix exception on cofirmation screen (#202)
When a user attempts to confirm an e-mail address, an exception is thrown because the db session is closed prior to logging.
The line db.session.close() has to move after the logging, otherwise the team parameters from the orm object are discarded and an exception is thrown.
Closing the session after logging, fixes the issue.
* Adding custom key types for challenges
* Separating out admin.py, adding challenge types
* Don't let truncate affect edit modal
* File uploads no longer refresh page (#207)
Closes (#180)
* Fixing missing import
* Fixing mistake in flag JSON response
* Removing compare_digest to support Python 2.7.6
* Fixing inconsistencies in standard challenge modal
* Passing submission input over to template js
* Handling cases where data can't be found in the DOM better
* Don't refresh modal if it's just a refresh operation
* Fixing solving challenges while scoreboard is public
Induce a redirect to make user login
* Adding missing js file and fixing migration
* Fixing some visual glitches and streamlining challenge creation
* Fixed hard coded upload directory (#206)
* Use <int:xxx> in routes to prevent some errors 500 (#192)
* Use first_or_404() to prevent some errors 500 (#193)
* Add a populating script for awards. (#191)
* Creating upload_file util
* Marking 1.0.0 in __init__ and starting database migrations
* Upgrading some more HTML
* Adding CHANGELOG.md
* PEP 8 compliance (#183)
* Group imports: standard library, third party, local
* Remove unnecessary spaces
* Comments should start with a # and a single space
* Adding tests for GETs on user facing pages
* Adding more user facing tests
51% test coverage
* Fixes#182
* Cleaning up Pages
Fixes a bug with CSS updating
Fixing statistics reporting banned users as well
Fixing url encoding and some error messages
Ordering solves in the admin graphs
Removing banned users (includes admins) from public teams page
Fixing email regex in profile
Until v1 is released all changes are fair game.
Caching support
Fixes for decoding confirmation and reset_password email tokens
Starting work on #154 specifying why challenges are not open
Adding a required parameter to HTML to sort of fix#153
Adding a column to specify when a team registered
Check static key by default in new key
Decreasing capability of pages functionality to address security
concerns
Fixing confirmations restrictions by modifying can__view_challenges()
Add a Config entry `view_challenges_unregistered` to indicate whether
unregistered users can view challenges. Add the setting to the admin config
page.
Add can_view_challenges() to utils to test if a user is either authed, or the
configuration allow unauthenticated users to view the challenges.
Return a HTTP 401 Unauthorized error when the /chals/solves API can't provide
results for an unauthenticated user. This is needed because the client side
code in `chalboard.js` doesn't know if it's logged in or not and requests this
anyway. (And AJAX doesn't handle redirects very well.) Alternately the client
could actually know if they're logged in and not make needless API calls.
When an unregistered user attempts to submit a flag, it will also fail. The
user will be redirected to a login page.