annotate src/server/constants.py @ 1019:34240d08f682

pages: HTTP cache headers handling: when checkCache is used, HTTP headers handling cache are now used: - ETag is first checked, using a hash of the rendered content - Last-Modified is used as a fallback is client is not handling ETag When suitable, a HTTP 304 code (Not Modified) wihtout body is returned instead of the whole page.
author Goffi <goffi@goffi.org>
date Sun, 21 Jan 2018 13:14:06 +0100
parents b6dc6cf76473
children f2170536ba23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
1 #!/usr/bin/python
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
3
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 445
diff changeset
4 # Libervia: a SAT frontend
964
fd4eae654182 misc: date update (yes it's a bit late :p )
Goffi <goffi@goffi.org>
parents: 962
diff changeset
5 # Copyright (C) 2009-2017 Jérôme Poisson (goffi@goffi.org)
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
6
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
10 # (at your option) any later version.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
11
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
16
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
19
860
05cd9dc775e6 server: use of relative import instead of try/except block in server/constants
Goffi <goffi@goffi.org>
parents: 856
diff changeset
20 from ..common import constants
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
21
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
22
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
23 class Const(constants.Const):
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
24
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
25 APP_NAME = 'Libervia'
512
750db9ff8525 server side: launching script improvments:
Goffi <goffi@goffi.org>
parents: 490
diff changeset
26 APP_NAME_FILE = "libervia"
436
73f767a9ac2f server_side: added constant SERVICE_PROFILE to remove hard-coded value
souliane <souliane@mailoo.org>
parents: 340
diff changeset
27 SERVICE_PROFILE = 'libervia' # the SàT profile that is used for exporting the service
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
28
993
641664553a41 server: changed session timeout from 5 min to 2h, avoiding undesired disconnection on Libervia pages.
Goffi <goffi@goffi.org>
parents: 990
diff changeset
29 SESSION_TIMEOUT = 7200 # Session's timeout, after that the user will be disconnected
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 445
diff changeset
30 HTML_DIR = "html/"
703
1a19ee7d8d8a server_side: add default theme
souliane <souliane@mailoo.org>
parents: 685
diff changeset
31 THEMES_DIR = "themes/"
823
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
32 THEMES_URL = "themes"
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
33 MEDIA_DIR = "media/"
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
34 CARDS_DIR = "games/cards/tarot"
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
35 PAGES_DIR = u"pages"
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
36
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
37 ERRNUM_BRIDGE_ERRBACK = 0 # FIXME
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
38 ERRNUM_LIBERVIA = 0 # FIXME
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
39
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
40 # Security limit for Libervia (get/set params)
338
80016abf3ad3 server_side: raised default security_limit to 5
Goffi <goffi@goffi.org>
parents: 317
diff changeset
41 SECURITY_LIMIT = 5
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
42
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
43 # Security limit for Libervia server_side
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
44 SERVER_SECURITY_LIMIT = constants.Const.NO_SECURITY_LIMIT
605
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
45
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
46 # keys for cache values we can get from browser
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
47 ALLOWED_ENTITY_DATA = {'avatar', 'nick'}
823
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
48
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
49 STATIC_RSM_MAX_LIMIT = 100
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
50 STATIC_RSM_MAX_DEFAULT = 10
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
51 STATIC_RSM_MAX_COMMENTS_DEFAULT = 10
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
52
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
53 ## Libervia pages ##
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
54 PAGES_META_FILE = u"page_meta.py"
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
55 PAGES_ACCESS_NONE = u"none" # no access to this page (using its path will return a 404 error)
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
56 PAGES_ACCESS_PUBLIC = u"public"
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
57 PAGES_ACCESS_PROFILE = u"profile" # a session with an existing profile must be started
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
58 PAGES_ACCESS_ADMIN = u"admin" # only profiles set in admins_list can access the page
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
59 PAGES_ACCESS_ALL = (PAGES_ACCESS_NONE, PAGES_ACCESS_PUBLIC, PAGES_ACCESS_PROFILE, PAGES_ACCESS_ADMIN)
990
6daa59d44ee2 pages: menu implementation, first draft:
Goffi <goffi@goffi.org>
parents: 985
diff changeset
60 # names of the page to use for menu
1005
b6dc6cf76473 server: added "chat" and "app" in default menu
Goffi <goffi@goffi.org>
parents: 993
diff changeset
61 DEFAULT_MENU = ['login', 'blog_view', 'chat', 'app']
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
62
957
67bf14c91d5c server (pages): added a confirm flag on successful post:
Goffi <goffi@goffi.org>
parents: 956
diff changeset
63 ## Session flags ##
962
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
64 FLAG_CONFIRM = u"CONFIRM"
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
65
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
66 ## Data post ##
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
67 POST_NO_CONFIRM = u"POST_NO_CONFIRM"
957
67bf14c91d5c server (pages): added a confirm flag on successful post:
Goffi <goffi@goffi.org>
parents: 956
diff changeset
68
931
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
69 ## HTTP methods ##
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
70 HTTP_METHOD_GET = u'GET'
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
71 HTTP_METHOD_POST = u'POST'
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
72
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
73 ## HTTP codes ##
956
dabecab10faa server (pages): impleted CSRF protection:
Goffi <goffi@goffi.org>
parents: 934
diff changeset
74 HTTP_SEE_OTHER = 303
1019
34240d08f682 pages: HTTP cache headers handling:
Goffi <goffi@goffi.org>
parents: 1005
diff changeset
75 HTTP_NOT_MODIFIED = 304
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
76 HTTP_BAD_REQUEST = 400
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
77 HTTP_UNAUTHORIZED = 401
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
78 HTTP_NOT_FOUND = 404
934
a21fee7e30ee server (constants): added HTTP_INTERNAL_ERROR and HTTP_SERVICE_UNAVAILABLE
Goffi <goffi@goffi.org>
parents: 931
diff changeset
79 HTTP_INTERNAL_ERROR = 500
a21fee7e30ee server (constants): added HTTP_INTERNAL_ERROR and HTTP_SERVICE_UNAVAILABLE
Goffi <goffi@goffi.org>
parents: 931
diff changeset
80 HTTP_SERVICE_UNAVAILABLE = 503
985
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
81
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
82 ## Cache ##
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
83 CACHE_PUBSUB = 0
1019
34240d08f682 pages: HTTP cache headers handling:
Goffi <goffi@goffi.org>
parents: 1005
diff changeset
84
34240d08f682 pages: HTTP cache headers handling:
Goffi <goffi@goffi.org>
parents: 1005
diff changeset
85 ## Date/Time ##
34240d08f682 pages: HTTP cache headers handling:
Goffi <goffi@goffi.org>
parents: 1005
diff changeset
86 HTTP_DAYS = ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
34240d08f682 pages: HTTP cache headers handling:
Goffi <goffi@goffi.org>
parents: 1005
diff changeset
87 HTTP_MONTH = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")