diff --git a/muk_utils/__manifest__.py b/muk_utils/__manifest__.py index 1dc3ca3..6a7ce26 100644 --- a/muk_utils/__manifest__.py +++ b/muk_utils/__manifest__.py @@ -20,7 +20,7 @@ { "name": "MuK Utils", "summary": """Utility Features""", - "version": '12.0.1.1.3', + "version": '12.0.1.1.4', "category": 'Extra Tools', "license": "AGPL-3", "author": "MuK IT", diff --git a/muk_utils/tools/__init__.py b/muk_utils/tools/__init__.py index 66447db..515d931 100644 --- a/muk_utils/tools/__init__.py +++ b/muk_utils/tools/__init__.py @@ -22,4 +22,5 @@ from . import json from . import cache from . import types from . import http -from . import patch \ No newline at end of file +from . import patch +from . import security \ No newline at end of file diff --git a/muk_utils/tools/security.py b/muk_utils/tools/security.py new file mode 100644 index 0000000..d4dec15 --- /dev/null +++ b/muk_utils/tools/security.py @@ -0,0 +1,34 @@ +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +import string +import random +import logging + +_logger = logging.getLogger(__name__) + +UNICODE_ASCII_CHARACTERS = string.ascii_letters + string.digits + +#---------------------------------------------------------- +# Generator +#---------------------------------------------------------- + +def generate_token(length=30, chars=UNICODE_ASCII_CHARACTERS): + generator = random.SystemRandom() + return "".join(generator.choice(chars) for index in range(length)) \ No newline at end of file