Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 78524d1baab89109061f7507cb8d46624e53638e
Author: Bohuslav Kabrda <bkabrda(a)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()