Add give_token, catch_etiquette_exception to all endpoints at once.
This commit is contained in:
		
							parent
							
								
									f7e5b639e3
								
							
						
					
					
						commit
						42d4b7fafb
					
				
					 7 changed files with 22 additions and 63 deletions
				
			
		|  | @ -10,6 +10,7 @@ from voussoirkit import pathclass | ||||||
| import etiquette | import etiquette | ||||||
| 
 | 
 | ||||||
| from . import caching | from . import caching | ||||||
|  | from . import decorators | ||||||
| from . import jinja_filters | from . import jinja_filters | ||||||
| from . import jsonify | from . import jsonify | ||||||
| from . import sessions | from . import sessions | ||||||
|  | @ -45,6 +46,27 @@ file_cache_manager = caching.FileCacheManager( | ||||||
|     max_age=BROWSER_CACHE_DURATION, |     max_age=BROWSER_CACHE_DURATION, | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | # Flask provides decorators for before_request and after_request, but not for | ||||||
|  | # wrapping the whole request. The decorators I am using need to wrap the whole | ||||||
|  | # request, either to catch exceptions (which don't get passed through | ||||||
|  | # after_request) or to maintain some state before running the function and | ||||||
|  | # adding it to the response after. | ||||||
|  | # Instead of copy-pasting my decorators onto every single function and | ||||||
|  | # forgetting to keep up with them in the future, let's just hijack the | ||||||
|  | # decorator I know every endpoint will have: site.route. | ||||||
|  | _original_route = site.route | ||||||
|  | def decorate_and_route(*route_args, **route_kwargs): | ||||||
|  |     def wrapper(endpoint): | ||||||
|  |         if not hasattr(endpoint, '_fully_decorated'): | ||||||
|  |             endpoint = decorators.catch_etiquette_exception(endpoint) | ||||||
|  |             endpoint = session_manager.give_token(endpoint) | ||||||
|  | 
 | ||||||
|  |         endpoint = _original_route(*route_args, **route_kwargs)(endpoint) | ||||||
|  |         endpoint._fully_decorated = True | ||||||
|  |         return endpoint | ||||||
|  |     return wrapper | ||||||
|  | site.route = decorate_and_route | ||||||
|  | 
 | ||||||
| gzip_minimum_size = 500 | gzip_minimum_size = 500 | ||||||
| gzip_level = 3 | gzip_level = 3 | ||||||
| @site.after_request | @site.after_request | ||||||
|  |  | ||||||
|  | @ -14,7 +14,6 @@ session_manager = common.session_manager | ||||||
| # Individual albums ################################################################################ | # Individual albums ################################################################################ | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>') | @site.route('/album/<album_id>') | ||||||
| @session_manager.give_token |  | ||||||
| def get_album_html(album_id): | def get_album_html(album_id): | ||||||
|     album = common.P_album(album_id, response_type='html') |     album = common.P_album(album_id, response_type='html') | ||||||
|     response = common.render_template( |     response = common.render_template( | ||||||
|  | @ -26,7 +25,6 @@ def get_album_html(album_id): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>.json') | @site.route('/album/<album_id>.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_album_json(album_id): | def get_album_json(album_id): | ||||||
|     album = common.P_album(album_id, response_type='json') |     album = common.P_album(album_id, response_type='json') | ||||||
|     album = etiquette.jsonify.album(album) |     album = etiquette.jsonify.album(album) | ||||||
|  | @ -56,7 +54,6 @@ def get_album_zip(album_id): | ||||||
|     return flask.Response(streamed_zip, headers=outgoing_headers) |     return flask.Response(streamed_zip, headers=outgoing_headers) | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/add_child', methods=['POST']) | @site.route('/album/<album_id>/add_child', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['child_id'], forbid_whitespace=True) | @decorators.required_fields(['child_id'], forbid_whitespace=True) | ||||||
| def post_album_add_child(album_id): | def post_album_add_child(album_id): | ||||||
|     album = common.P_album(album_id, response_type='json') |     album = common.P_album(album_id, response_type='json') | ||||||
|  | @ -66,7 +63,6 @@ def post_album_add_child(album_id): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/remove_child', methods=['POST']) | @site.route('/album/<album_id>/remove_child', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['child_id'], forbid_whitespace=True) | @decorators.required_fields(['child_id'], forbid_whitespace=True) | ||||||
| def post_album_remove_child(album_id): | def post_album_remove_child(album_id): | ||||||
|     album = common.P_album(album_id, response_type='json') |     album = common.P_album(album_id, response_type='json') | ||||||
|  | @ -76,7 +72,6 @@ def post_album_remove_child(album_id): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/refresh_directories', methods=['POST']) | @site.route('/album/<album_id>/refresh_directories', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_album_refresh_directories(album_id): | def post_album_refresh_directories(album_id): | ||||||
|     album = common.P_album(album_id, response_type='json') |     album = common.P_album(album_id, response_type='json') | ||||||
|     for directory in album.get_associated_directories(): |     for directory in album.get_associated_directories(): | ||||||
|  | @ -87,8 +82,6 @@ def post_album_refresh_directories(album_id): | ||||||
| # Album photo operations ########################################################################### | # Album photo operations ########################################################################### | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/add_photo', methods=['POST']) | @site.route('/album/<album_id>/add_photo', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['photo_id'], forbid_whitespace=True) | @decorators.required_fields(['photo_id'], forbid_whitespace=True) | ||||||
| def post_album_add_photo(album_id): | def post_album_add_photo(album_id): | ||||||
|     ''' |     ''' | ||||||
|  | @ -103,8 +96,6 @@ def post_album_add_photo(album_id): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/remove_photo', methods=['POST']) | @site.route('/album/<album_id>/remove_photo', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['photo_id'], forbid_whitespace=True) | @decorators.required_fields(['photo_id'], forbid_whitespace=True) | ||||||
| def post_album_remove_photo(album_id): | def post_album_remove_photo(album_id): | ||||||
|     ''' |     ''' | ||||||
|  | @ -121,8 +112,6 @@ def post_album_remove_photo(album_id): | ||||||
| # Album tag operations ############################################################################# | # Album tag operations ############################################################################# | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/add_tag', methods=['POST']) | @site.route('/album/<album_id>/add_tag', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| def post_album_add_tag(album_id): | def post_album_add_tag(album_id): | ||||||
|     ''' |     ''' | ||||||
|     Apply a tag to every photo in the album. |     Apply a tag to every photo in the album. | ||||||
|  | @ -146,8 +135,6 @@ def post_album_add_tag(album_id): | ||||||
| # Album metadata operations ######################################################################## | # Album metadata operations ######################################################################## | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/edit', methods=['POST']) | @site.route('/album/<album_id>/edit', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_album_edit(album_id): | def post_album_edit(album_id): | ||||||
|     ''' |     ''' | ||||||
|     Edit the title / description. |     Edit the title / description. | ||||||
|  | @ -168,7 +155,6 @@ def get_albums_core(): | ||||||
|     return albums |     return albums | ||||||
| 
 | 
 | ||||||
| @site.route('/albums') | @site.route('/albums') | ||||||
| @session_manager.give_token |  | ||||||
| def get_albums_html(): | def get_albums_html(): | ||||||
|     albums = get_albums_core() |     albums = get_albums_core() | ||||||
|     response = common.render_template( |     response = common.render_template( | ||||||
|  | @ -180,7 +166,6 @@ def get_albums_html(): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/albums.json') | @site.route('/albums.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_albums_json(): | def get_albums_json(): | ||||||
|     albums = get_albums_core() |     albums = get_albums_core() | ||||||
|     albums = [etiquette.jsonify.album(album, minimal=True) for album in albums] |     albums = [etiquette.jsonify.album(album, minimal=True) for album in albums] | ||||||
|  | @ -189,8 +174,6 @@ def get_albums_json(): | ||||||
| # Album create and delete ########################################################################## | # Album create and delete ########################################################################## | ||||||
| 
 | 
 | ||||||
| @site.route('/albums/create_album', methods=['POST']) | @site.route('/albums/create_album', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_albums_create(): | def post_albums_create(): | ||||||
|     title = request.form.get('title', None) |     title = request.form.get('title', None) | ||||||
|     description = request.form.get('description', None) |     description = request.form.get('description', None) | ||||||
|  | @ -209,8 +192,6 @@ def post_albums_create(): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/album/<album_id>/delete', methods=['POST']) | @site.route('/album/<album_id>/delete', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_album_delete(album_id): | def post_album_delete(album_id): | ||||||
|     album = common.P_album(album_id, response_type='json') |     album = common.P_album(album_id, response_type='json') | ||||||
|     album.delete(commit=True) |     album.delete(commit=True) | ||||||
|  |  | ||||||
|  | @ -10,7 +10,6 @@ session_manager = common.session_manager | ||||||
| #################################################################################################### | #################################################################################################### | ||||||
| 
 | 
 | ||||||
| @site.route('/') | @site.route('/') | ||||||
| @session_manager.give_token |  | ||||||
| def root(): | def root(): | ||||||
|     motd = random.choice(common.P.config['motd_strings']) |     motd = random.choice(common.P.config['motd_strings']) | ||||||
|     return common.render_template(request, 'root.html', motd=motd) |     return common.render_template(request, 'root.html', motd=motd) | ||||||
|  | @ -21,7 +20,6 @@ def favicon(): | ||||||
|     return flask.send_file(common.FAVICON_PATH.absolute_path) |     return flask.send_file(common.FAVICON_PATH.absolute_path) | ||||||
| 
 | 
 | ||||||
| @site.route('/apitest') | @site.route('/apitest') | ||||||
| @session_manager.give_token |  | ||||||
| def apitest(): | def apitest(): | ||||||
|     response = flask.Response('testing') |     response = flask.Response('testing') | ||||||
|     return response |     return response | ||||||
|  |  | ||||||
|  | @ -13,15 +13,12 @@ session_manager = common.session_manager | ||||||
| # Individual bookmarks ############################################################################# | # Individual bookmarks ############################################################################# | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmark/<bookmark_id>.json') | @site.route('/bookmark/<bookmark_id>.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_bookmark_json(bookmark_id): | def get_bookmark_json(bookmark_id): | ||||||
|     bookmark = common.P_bookmark(bookmark_id, response_type='json') |     bookmark = common.P_bookmark(bookmark_id, response_type='json') | ||||||
|     response = etiquette.jsonify.bookmark(bookmark) |     response = etiquette.jsonify.bookmark(bookmark) | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmark/<bookmark_id>/edit', methods=['POST']) | @site.route('/bookmark/<bookmark_id>/edit', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_bookmark_edit(bookmark_id): | def post_bookmark_edit(bookmark_id): | ||||||
|     bookmark = common.P_bookmark(bookmark_id, response_type='json') |     bookmark = common.P_bookmark(bookmark_id, response_type='json') | ||||||
|     # Emptystring is okay for titles, but not for URL. |     # Emptystring is okay for titles, but not for URL. | ||||||
|  | @ -36,13 +33,11 @@ def post_bookmark_edit(bookmark_id): | ||||||
| # Bookmark listings ################################################################################ | # Bookmark listings ################################################################################ | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmarks') | @site.route('/bookmarks') | ||||||
| @session_manager.give_token |  | ||||||
| def get_bookmarks_html(): | def get_bookmarks_html(): | ||||||
|     bookmarks = list(common.P.get_bookmarks()) |     bookmarks = list(common.P.get_bookmarks()) | ||||||
|     return common.render_template(request, 'bookmarks.html', bookmarks=bookmarks) |     return common.render_template(request, 'bookmarks.html', bookmarks=bookmarks) | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmarks.json') | @site.route('/bookmarks.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_bookmarks_json(): | def get_bookmarks_json(): | ||||||
|     bookmarks = [etiquette.jsonify.bookmark(b) for b in common.P.get_bookmarks()] |     bookmarks = [etiquette.jsonify.bookmark(b) for b in common.P.get_bookmarks()] | ||||||
|     return jsonify.make_json_response(bookmarks) |     return jsonify.make_json_response(bookmarks) | ||||||
|  | @ -50,7 +45,6 @@ def get_bookmarks_json(): | ||||||
| # Bookmark create and delete ####################################################################### | # Bookmark create and delete ####################################################################### | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmarks/create_bookmark', methods=['POST']) | @site.route('/bookmarks/create_bookmark', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['url'], forbid_whitespace=True) | @decorators.required_fields(['url'], forbid_whitespace=True) | ||||||
| def post_bookmark_create(): | def post_bookmark_create(): | ||||||
|     url = request.form['url'] |     url = request.form['url'] | ||||||
|  | @ -62,7 +56,6 @@ def post_bookmark_create(): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/bookmark/<bookmark_id>/delete', methods=['POST']) | @site.route('/bookmark/<bookmark_id>/delete', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_bookmark_delete(bookmark_id): | def post_bookmark_delete(bookmark_id): | ||||||
|     bookmark = common.P_bookmark(bookmark_id, response_type='json') |     bookmark = common.P_bookmark(bookmark_id, response_type='json') | ||||||
|     bookmark.delete(commit=True) |     bookmark.delete(commit=True) | ||||||
|  |  | ||||||
|  | @ -19,13 +19,11 @@ photo_download_zip_tokens = cacheclass.Cache(maxlen=100) | ||||||
| # Individual photos ################################################################################ | # Individual photos ################################################################################ | ||||||
| 
 | 
 | ||||||
| @site.route('/photo/<photo_id>') | @site.route('/photo/<photo_id>') | ||||||
| @session_manager.give_token |  | ||||||
| def get_photo_html(photo_id): | def get_photo_html(photo_id): | ||||||
|     photo = common.P_photo(photo_id, response_type='html') |     photo = common.P_photo(photo_id, response_type='html') | ||||||
|     return common.render_template(request, 'photo.html', photo=photo) |     return common.render_template(request, 'photo.html', photo=photo) | ||||||
| 
 | 
 | ||||||
| @site.route('/photo/<photo_id>.json') | @site.route('/photo/<photo_id>.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_photo_json(photo_id): | def get_photo_json(photo_id): | ||||||
|     photo = common.P_photo(photo_id, response_type='json') |     photo = common.P_photo(photo_id, response_type='json') | ||||||
|     photo = etiquette.jsonify.photo(photo) |     photo = etiquette.jsonify.photo(photo) | ||||||
|  | @ -71,8 +69,6 @@ def get_thumbnail(photo_id): | ||||||
| # Photo create and delete ########################################################################## | # Photo create and delete ########################################################################## | ||||||
| 
 | 
 | ||||||
| @site.route('/photo/<photo_id>/delete', methods=['POST']) | @site.route('/photo/<photo_id>/delete', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| def post_photo_delete(photo_id): | def post_photo_delete(photo_id): | ||||||
|     print(photo_id) |     print(photo_id) | ||||||
|     photo = common.P_photo(photo_id, response_type='json') |     photo = common.P_photo(photo_id, response_type='json') | ||||||
|  | @ -83,7 +79,6 @@ def post_photo_delete(photo_id): | ||||||
| 
 | 
 | ||||||
| # Photo tag operations ############################################################################# | # Photo tag operations ############################################################################# | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_photo_add_remove_tag_core(photo_ids, tagname, add_or_remove): | def post_photo_add_remove_tag_core(photo_ids, tagname, add_or_remove): | ||||||
|     if isinstance(photo_ids, str): |     if isinstance(photo_ids, str): | ||||||
|         photo_ids = etiquette.helpers.comma_space_split(photo_ids) |         photo_ids = etiquette.helpers.comma_space_split(photo_ids) | ||||||
|  | @ -149,7 +144,6 @@ def post_batch_photos_remove_tag(): | ||||||
| 
 | 
 | ||||||
| # Photo metadata operations ######################################################################## | # Photo metadata operations ######################################################################## | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @site.route('/photo/<photo_id>/generate_thumbnail', methods=['POST']) | @site.route('/photo/<photo_id>/generate_thumbnail', methods=['POST']) | ||||||
| def post_photo_generate_thumbnail(photo_id): | def post_photo_generate_thumbnail(photo_id): | ||||||
|     special = request.form.to_dict() |     special = request.form.to_dict() | ||||||
|  | @ -161,7 +155,6 @@ def post_photo_generate_thumbnail(photo_id): | ||||||
|     response = jsonify.make_json_response({}) |     response = jsonify.make_json_response({}) | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_photo_refresh_metadata_core(photo_ids): | def post_photo_refresh_metadata_core(photo_ids): | ||||||
|     if isinstance(photo_ids, str): |     if isinstance(photo_ids, str): | ||||||
|         photo_ids = etiquette.helpers.comma_space_split(photo_ids) |         photo_ids = etiquette.helpers.comma_space_split(photo_ids) | ||||||
|  | @ -193,21 +186,18 @@ def post_batch_photos_refresh_metadata(): | ||||||
|     response = post_photo_refresh_metadata_core(photo_ids=request.form['photo_ids']) |     response = post_photo_refresh_metadata_core(photo_ids=request.form['photo_ids']) | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @site.route('/photo/<photo_id>/set_searchhidden', methods=['POST']) | @site.route('/photo/<photo_id>/set_searchhidden', methods=['POST']) | ||||||
| def post_photo_set_searchhidden(photo_id): | def post_photo_set_searchhidden(photo_id): | ||||||
|     photo = common.P_photo(photo_id, response_type='json') |     photo = common.P_photo(photo_id, response_type='json') | ||||||
|     photo.set_searchhidden(True) |     photo.set_searchhidden(True) | ||||||
|     return jsonify.make_json_response({}) |     return jsonify.make_json_response({}) | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @site.route('/photo/<photo_id>/unset_searchhidden', methods=['POST']) | @site.route('/photo/<photo_id>/unset_searchhidden', methods=['POST']) | ||||||
| def post_photo_unset_searchhidden(photo_id): | def post_photo_unset_searchhidden(photo_id): | ||||||
|     photo = common.P_photo(photo_id, response_type='json') |     photo = common.P_photo(photo_id, response_type='json') | ||||||
|     photo.set_searchhidden(False) |     photo.set_searchhidden(False) | ||||||
|     return jsonify.make_json_response({}) |     return jsonify.make_json_response({}) | ||||||
| 
 | 
 | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_batch_photos_searchhidden_core(photo_ids, searchhidden): | def post_batch_photos_searchhidden_core(photo_ids, searchhidden): | ||||||
|     if isinstance(photo_ids, str): |     if isinstance(photo_ids, str): | ||||||
|         photo_ids = etiquette.helpers.comma_space_split(photo_ids) |         photo_ids = etiquette.helpers.comma_space_split(photo_ids) | ||||||
|  | @ -236,7 +226,6 @@ def post_batch_photos_unset_searchhidden(): | ||||||
| # Clipboard ######################################################################################## | # Clipboard ######################################################################################## | ||||||
| 
 | 
 | ||||||
| @site.route('/clipboard') | @site.route('/clipboard') | ||||||
| @session_manager.give_token |  | ||||||
| def get_clipboard_page(): | def get_clipboard_page(): | ||||||
|     return common.render_template(request, 'clipboard.html') |     return common.render_template(request, 'clipboard.html') | ||||||
| 
 | 
 | ||||||
|  | @ -452,7 +441,6 @@ def get_search_core(): | ||||||
|     return final_results |     return final_results | ||||||
| 
 | 
 | ||||||
| @site.route('/search') | @site.route('/search') | ||||||
| @session_manager.give_token |  | ||||||
| def get_search_html(): | def get_search_html(): | ||||||
|     search_results = get_search_core() |     search_results = get_search_core() | ||||||
|     response = common.render_template( |     response = common.render_template( | ||||||
|  | @ -468,7 +456,6 @@ def get_search_html(): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/search.json') | @site.route('/search.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_search_json(): | def get_search_json(): | ||||||
|     search_results = get_search_core() |     search_results = get_search_core() | ||||||
|     search_kwargs = search_results['search_kwargs'] |     search_kwargs = search_results['search_kwargs'] | ||||||
|  |  | ||||||
|  | @ -31,7 +31,6 @@ def get_tag_id_redirect(tag_id): | ||||||
|     return flask.redirect(url) |     return flask.redirect(url) | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<specific_tag>/edit', methods=['POST']) | @site.route('/tag/<specific_tag>/edit', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| def post_tag_edit(specific_tag): | def post_tag_edit(specific_tag): | ||||||
|     tag = common.P_tag(specific_tag, response_type='json') |     tag = common.P_tag(specific_tag, response_type='json') | ||||||
|     name = request.form.get('name', '').strip() |     name = request.form.get('name', '').strip() | ||||||
|  | @ -46,8 +45,6 @@ def post_tag_edit(specific_tag): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<tagname>/add_child', methods=['POST']) | @site.route('/tag/<tagname>/add_child', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['child_name'], forbid_whitespace=True) | @decorators.required_fields(['child_name'], forbid_whitespace=True) | ||||||
| def post_tag_add_child(tagname): | def post_tag_add_child(tagname): | ||||||
|     parent = common.P_tag(tagname, response_type='json') |     parent = common.P_tag(tagname, response_type='json') | ||||||
|  | @ -57,8 +54,6 @@ def post_tag_add_child(tagname): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<tagname>/remove_child', methods=['POST']) | @site.route('/tag/<tagname>/remove_child', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['child_name'], forbid_whitespace=True) | @decorators.required_fields(['child_name'], forbid_whitespace=True) | ||||||
| def post_tag_remove_child(tagname): | def post_tag_remove_child(tagname): | ||||||
|     parent = common.P_tag(tagname, response_type='json') |     parent = common.P_tag(tagname, response_type='json') | ||||||
|  | @ -79,7 +74,6 @@ def get_all_tag_names(): | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<specific_tag_name>') | @site.route('/tag/<specific_tag_name>') | ||||||
| @site.route('/tags') | @site.route('/tags') | ||||||
| @session_manager.give_token |  | ||||||
| def get_tags_html(specific_tag_name=None): | def get_tags_html(specific_tag_name=None): | ||||||
|     if specific_tag_name is None: |     if specific_tag_name is None: | ||||||
|         specific_tag = None |         specific_tag = None | ||||||
|  | @ -114,7 +108,6 @@ def get_tags_html(specific_tag_name=None): | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<specific_tag_name>.json') | @site.route('/tag/<specific_tag_name>.json') | ||||||
| @site.route('/tags.json') | @site.route('/tags.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_tags_json(specific_tag_name=None): | def get_tags_json(specific_tag_name=None): | ||||||
|     if specific_tag_name is None: |     if specific_tag_name is None: | ||||||
|         specific_tag = None |         specific_tag = None | ||||||
|  | @ -137,8 +130,6 @@ def get_tags_json(specific_tag_name=None): | ||||||
| # Tag create and delete ############################################################################ | # Tag create and delete ############################################################################ | ||||||
| 
 | 
 | ||||||
| @site.route('/tags/create_tag', methods=['POST']) | @site.route('/tags/create_tag', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['name'], forbid_whitespace=True) | @decorators.required_fields(['name'], forbid_whitespace=True) | ||||||
| def post_tag_create(): | def post_tag_create(): | ||||||
|     name = request.form['name'] |     name = request.form['name'] | ||||||
|  | @ -149,8 +140,6 @@ def post_tag_create(): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/tags/easybake', methods=['POST']) | @site.route('/tags/easybake', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['easybake_string'], forbid_whitespace=True) | @decorators.required_fields(['easybake_string'], forbid_whitespace=True) | ||||||
| def post_tag_easybake(): | def post_tag_easybake(): | ||||||
|     easybake_string = request.form['easybake_string'] |     easybake_string = request.form['easybake_string'] | ||||||
|  | @ -160,8 +149,6 @@ def post_tag_easybake(): | ||||||
|     return jsonify.make_json_response(notes) |     return jsonify.make_json_response(notes) | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<tagname>/delete', methods=['POST']) | @site.route('/tag/<tagname>/delete', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| def post_tag_delete(tagname): | def post_tag_delete(tagname): | ||||||
|     tag = common.P_tag(tagname, response_type='json') |     tag = common.P_tag(tagname, response_type='json') | ||||||
|     tag.delete(commit=True) |     tag.delete(commit=True) | ||||||
|  | @ -169,8 +156,6 @@ def post_tag_delete(tagname): | ||||||
|     return jsonify.make_json_response(response) |     return jsonify.make_json_response(response) | ||||||
| 
 | 
 | ||||||
| @site.route('/tag/<tagname>/remove_synonym', methods=['POST']) | @site.route('/tag/<tagname>/remove_synonym', methods=['POST']) | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['syn_name'], forbid_whitespace=True) | @decorators.required_fields(['syn_name'], forbid_whitespace=True) | ||||||
| def post_tag_remove_synonym(tagname): | def post_tag_remove_synonym(tagname): | ||||||
|     syn_name = request.form['syn_name'] |     syn_name = request.form['syn_name'] | ||||||
|  |  | ||||||
|  | @ -14,13 +14,11 @@ session_manager = common.session_manager | ||||||
| # Individual users ################################################################################# | # Individual users ################################################################################# | ||||||
| 
 | 
 | ||||||
| @site.route('/user/<username>') | @site.route('/user/<username>') | ||||||
| @session_manager.give_token |  | ||||||
| def get_user_html(username): | def get_user_html(username): | ||||||
|     user = common.P_user(username, response_type='html') |     user = common.P_user(username, response_type='html') | ||||||
|     return common.render_template(request, 'user.html', user=user) |     return common.render_template(request, 'user.html', user=user) | ||||||
| 
 | 
 | ||||||
| @site.route('/user/<username>.json') | @site.route('/user/<username>.json') | ||||||
| @session_manager.give_token |  | ||||||
| def get_user_json(username): | def get_user_json(username): | ||||||
|     user = common.P_user(username, response_type='json') |     user = common.P_user(username, response_type='json') | ||||||
|     user = etiquette.jsonify.user(user) |     user = etiquette.jsonify.user(user) | ||||||
|  | @ -41,7 +39,6 @@ def get_user_id_redirect(user_id): | ||||||
| # Login and logout ################################################################################# | # Login and logout ################################################################################# | ||||||
| 
 | 
 | ||||||
| @site.route('/login', methods=['GET']) | @site.route('/login', methods=['GET']) | ||||||
| @session_manager.give_token |  | ||||||
| def get_login(): | def get_login(): | ||||||
|     response = common.render_template( |     response = common.render_template( | ||||||
|         request, |         request, | ||||||
|  | @ -52,7 +49,6 @@ def get_login(): | ||||||
|     return response |     return response | ||||||
| 
 | 
 | ||||||
| @site.route('/login', methods=['POST']) | @site.route('/login', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.required_fields(['username', 'password']) | @decorators.required_fields(['username', 'password']) | ||||||
| def post_login(): | def post_login(): | ||||||
|     session = session_manager.get(request) |     session = session_manager.get(request) | ||||||
|  | @ -82,7 +78,6 @@ def post_login(): | ||||||
|     return jsonify.make_json_response({}) |     return jsonify.make_json_response({}) | ||||||
| 
 | 
 | ||||||
| @site.route('/logout', methods=['POST']) | @site.route('/logout', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| def logout(): | def logout(): | ||||||
|     session_manager.remove(request) |     session_manager.remove(request) | ||||||
|     response = jsonify.make_json_response({}) |     response = jsonify.make_json_response({}) | ||||||
|  | @ -95,8 +90,6 @@ def get_register(): | ||||||
|     return flask.redirect('/login') |     return flask.redirect('/login') | ||||||
| 
 | 
 | ||||||
| @site.route('/register', methods=['POST']) | @site.route('/register', methods=['POST']) | ||||||
| @session_manager.give_token |  | ||||||
| @decorators.catch_etiquette_exception |  | ||||||
| @decorators.required_fields(['username', 'password_1', 'password_2']) | @decorators.required_fields(['username', 'password_1', 'password_2']) | ||||||
| def post_register(): | def post_register(): | ||||||
|     session = session_manager.get(request) |     session = session_manager.get(request) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue