Mercurial > p > roundup > code
annotate roundup/backends/sessions_common.py @ 7478:e8d2a4bca16a
Update index. Add "track your issues your way" tag line and...
Add description of benefits to some of the noteworthy changes.
Add GTD "thing management" from old email in the 1.6 time period.
Reverse order of fast gratification so source directory is first then
venv install. Match the first line that says you don't have to
install.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 11 Jun 2023 21:32:46 -0400 |
| parents | b04e44db7d8d |
| children |
| rev | line source |
|---|---|
|
6823
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
1 import base64, logging |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
2 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
3 import roundup.anypy.random_ as random_ |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
4 from roundup.anypy.strings import b2s |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
5 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
6 logger = logging.getLogger('roundup.hyperdb.backend.sessions') |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
7 if not random_.is_weak: |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
8 logger.debug("Importing good random generator") |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
9 else: |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
10 logger.warning("**SystemRandom not available. Using poor random generator") |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
11 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
12 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
13 class SessionCommon: |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
14 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
15 def log_debug(self, msg, *args, **kwargs): |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
16 """Log a message with level DEBUG.""" |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
17 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
18 logger = self.get_logger() |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
19 logger.debug(msg, *args, **kwargs) |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
20 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
21 def log_info(self, msg, *args, **kwargs): |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
22 """Log a message with level INFO.""" |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
23 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
24 logger = self.get_logger() |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
25 logger.info(msg, *args, **kwargs) |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
26 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
27 def log_warning(self, msg, *args, **kwargs): |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
28 """Log a message with level INFO.""" |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
29 logger = self.get_logger() |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
30 logger.warning(msg, *args, **kwargs) |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
31 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
32 def get_logger(self): |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
33 """Return the logger for this database.""" |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
34 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
35 # Because getting a logger requires acquiring a lock, we want |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
36 # to do it only once. |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
37 if not hasattr(self, '__logger'): |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
38 self.__logger = logging.getLogger('roundup.hyperdb.backends.%s' % |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
39 self.name or "basicdb" ) |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
40 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
41 return self.__logger |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
42 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
43 def getUniqueKey(self, length=40): |
|
6825
b04e44db7d8d
Modify unique token to use url safe characters.
John Rouillard <rouilj@ieee.org>
parents:
6823
diff
changeset
|
44 otk = b2s(base64.urlsafe_b64encode( |
|
6823
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
45 random_.token_bytes(length))).rstrip('=') |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
46 while self.exists(otk): |
|
6825
b04e44db7d8d
Modify unique token to use url safe characters.
John Rouillard <rouilj@ieee.org>
parents:
6823
diff
changeset
|
47 otk = b2s(base64.urlsafe_b64encode( |
|
6823
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
48 random_.token_bytes(length))).rstrip('=') |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
49 |
|
fe0091279f50
Refactor session db logging and key generation for sessions/otks
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
50 return otk |
