view roundup/backends/sessions_common.py @ 7971:fe0348bbe45b

issue2551353 - Add roundup-classhelper for 2.4.0 release Changes to the classic template are not done yet. Still testing. This commit has document updates and changes to rest.py. rest.py: add /rest/data/user/role endpoint to core so the user doesn't have to add the /rest/roles endpoint via interfaces.py. It will only send roles for a user with Admin role and there is no way to override this currently. acknowledgements.txt: Added members of team3 to other contributors. Specified for all other contributes what they worked on. upgrading.txt: added classhelper section and basic template change directions. Linked to admin_guide for full directions. admin_guide.txt: documented install, translation, troubleshooting, config etc. user_guide.txt: added section on using the classhelper. Added reference to section earlier in the doc. Added image for section.
author John Rouillard <rouilj@ieee.org>
date Tue, 21 May 2024 01:17:28 -0400
parents b04e44db7d8d
children
line wrap: on
line source

import base64, logging

import roundup.anypy.random_ as random_
from roundup.anypy.strings import b2s

logger = logging.getLogger('roundup.hyperdb.backend.sessions')
if not random_.is_weak:
    logger.debug("Importing good random generator")
else:
    logger.warning("**SystemRandom not available. Using poor random generator")


class SessionCommon:

    def log_debug(self, msg, *args, **kwargs):
        """Log a message with level DEBUG."""

        logger = self.get_logger()
        logger.debug(msg, *args, **kwargs)

    def log_info(self, msg, *args, **kwargs):
        """Log a message with level INFO."""

        logger = self.get_logger()
        logger.info(msg, *args, **kwargs)

    def log_warning(self, msg, *args, **kwargs):
        """Log a message with level INFO."""
        logger = self.get_logger()
        logger.warning(msg, *args, **kwargs)

    def get_logger(self):
        """Return the logger for this database."""

        # Because getting a logger requires acquiring a lock, we want
        # to do it only once.
        if not hasattr(self, '__logger'):
            self.__logger = logging.getLogger('roundup.hyperdb.backends.%s' %
                                              self.name or "basicdb" )

        return self.__logger

    def getUniqueKey(self, length=40):
        otk = b2s(base64.urlsafe_b64encode(
            random_.token_bytes(length))).rstrip('=')
        while self.exists(otk):
            otk = b2s(base64.urlsafe_b64encode(
                random_.token_bytes(length))).rstrip('=')

        return otk

Roundup Issue Tracker: http://roundup-tracker.org/