[copr] master: Make the generate_api_token to some common place, as it is used in more blueprints (again, prevent import headaches) (78524d1)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Mon Jan 28 09:30:42 UTC 2013


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : master

>---------------------------------------------------------------

commit 78524d1baab89109061f7507cb8d46624e53638e
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Mon Jan 28 10:12:22 2013 +0100

    Make the generate_api_token to some common place, as it is used in more blueprints (again, prevent import headaches)


>---------------------------------------------------------------

 coprs_frontend/coprs/helpers.py                  |   13 +++++++++++++
 coprs_frontend/coprs/views/api_ns/api_general.py |   17 ++---------------
 coprs_frontend/coprs/views/misc.py               |    3 ++-
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/coprs_frontend/coprs/helpers.py b/coprs_frontend/coprs/helpers.py
index 870a723..6cb7c16 100644
--- a/coprs_frontend/coprs/helpers.py
+++ b/coprs_frontend/coprs/helpers.py
@@ -1,9 +1,22 @@
 import math
+import random
+import string
 
 import flask
 
 from coprs import constants
 
+def generate_api_token(size=30):
+    """ Generate a random string used as token to access the API
+    remotely.
+
+    :kwarg: size, the size of the token to generate, defaults to 30
+        chars.
+    :return: a string, the API token for the user.
+    """
+    return ''.join(random.choice(string.ascii_lowercase) for x in range(size))
+
+
 class PermissionEnum(object):
     vals = {'nothing': 0, 'request': 1, 'approved': 2}
 
diff --git a/coprs_frontend/coprs/views/api_ns/api_general.py b/coprs_frontend/coprs/views/api_ns/api_general.py
index a912ac7..4cba67b 100644
--- a/coprs_frontend/coprs/views/api_ns/api_general.py
+++ b/coprs_frontend/coprs/views/api_ns/api_general.py
@@ -1,6 +1,4 @@
 import datetime
-import random
-import string
 import time
 
 import flask
@@ -8,6 +6,7 @@ import flask
 from coprs import db
 from coprs import exceptions
 from coprs import forms
+from coprs import helpers
 
 from coprs.views.misc import login_required
 
@@ -17,18 +16,6 @@ from coprs.logic import builds_logic
 from coprs.logic import coprs_logic
 
 
-def generate_api_token(size=30):
-    """ Generate a random string used as token to access the API
-    remotely.
-
-    :kwarg: size, the size of the token to generate, defaults to 30
-        chars.
-    :return: a string, the API token for the user.
-
-    """
-    return ''.join(random.choice(string.ascii_lowercase) for x in range(size))
-
-
 @api_ns.route('/')
 def api_home():
     """ Renders the home page of the api.
@@ -43,7 +30,7 @@ def api_new_token():
     """ Method use to generate a new API token for the current user.
     """
     user = flask.g.user
-    user.api_token = generate_api_token(flask.current_app.config['API_TOKEN_LENGTH'])
+    user.api_token = helpers.generate_api_token(flask.current_app.config['API_TOKEN_LENGTH'])
     user.api_token_expiration = datetime.date.today() \
         + datetime.timedelta(days=30)
     db.session.add(user)
diff --git a/coprs_frontend/coprs/views/misc.py b/coprs_frontend/coprs/views/misc.py
index e6a3f8a..48a1f3a 100644
--- a/coprs_frontend/coprs/views/misc.py
+++ b/coprs_frontend/coprs/views/misc.py
@@ -8,6 +8,7 @@ from flask.ext.openid import OpenID
 from coprs import app
 from coprs import config
 from coprs import db
+from coprs import helpers
 from coprs import models
 from coprs import oid
 
@@ -56,7 +57,7 @@ def create_or_login(resp):
         expiration_date_token = datetime.date.today() \
             + datetime.timedelta(days=30)
         user = models.User(openid_name = resp.identity_url, mail = resp.email,
-            api_token = generate_api_token(app.config['API_TOKEN_LENGTH']),
+            api_token = helpers.generate_api_token(app.config['API_TOKEN_LENGTH']),
             api_token_expiration = expiration_date_token)
         db.session.add(user)
         db.session.commit()



More information about the copr-devel mailing list