Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master
---------------------------------------------------------------
commit 87eb4f8c71e05f0e83e474fde6e5db1bf832ec4d
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Fri Oct 9 11:19:36 2015 +0200
change logic to store team in db rather then in session
---------------------------------------------------------------
.../coprs_frontend/coprs/logic/complex_logic.py | 4 ++--
frontend/coprs_frontend/coprs/models.py | 8 +++++---
.../coprs/views/groups_ns/groups_general.py | 2 +-
frontend/coprs_frontend/coprs/views/misc.py | 7 +++----
4 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/frontend/coprs_frontend/coprs/logic/complex_logic.py
b/frontend/coprs_frontend/coprs/logic/complex_logic.py
index 22a0d35..1f1b882 100644
--- a/frontend/coprs_frontend/coprs/logic/complex_logic.py
+++ b/frontend/coprs_frontend/coprs/logic/complex_logic.py
@@ -113,8 +113,8 @@ class ComplexLogic(object):
@staticmethod
def get_active_groups_by_user(user_name):
- if "teams" in flask.session:
- names = flask.session["teams"]
+ names = flask.g.user.user_groups
+ if names:
query = UsersLogic.get_groups_by_names_list(names)
return query.filter(User.name == user_name)
else:
diff --git a/frontend/coprs_frontend/coprs/models.py
b/frontend/coprs_frontend/coprs/models.py
index d113a9e..8555558 100644
--- a/frontend/coprs_frontend/coprs/models.py
+++ b/frontend/coprs_frontend/coprs/models.py
@@ -101,7 +101,10 @@ class User(db.Model, helpers.Serializer):
@property
def user_teams(self):
- return flask.session.get("teams", [])
+ if self.openid_groups and 'fas_groups' in self.openid_groups:
+ return self.openid_groups['fas_groups']
+ else:
+ return []
@property
def user_groups(self):
@@ -129,9 +132,8 @@ class User(db.Model, helpers.Serializer):
return True
- # a bit dirty code, here we access flask.session object
if copr.group is not None and \
- copr.group.fas_name in flask.session.get("teams", []):
+ copr.group.fas_name in self.user_teams:
return True
return False
diff --git a/frontend/coprs_frontend/coprs/views/groups_ns/groups_general.py
b/frontend/coprs_frontend/coprs/views/groups_ns/groups_general.py
index 7e35d7b..22147ea 100644
--- a/frontend/coprs_frontend/coprs/views/groups_ns/groups_general.py
+++ b/frontend/coprs_frontend/coprs/views/groups_ns/groups_general.py
@@ -64,7 +64,7 @@ def list_projects_by_group(group_name, page=1):
@groups_ns.route("/list/my")
@login_required
def list_user_groups():
- teams = session.get("teams")
+ teams = flask.g.user.user_teams
active_map = {
group.fas_name: group.name for group in
UsersLogic.get_groups_by_fas_names_list(teams).all()
diff --git a/frontend/coprs_frontend/coprs/views/misc.py
b/frontend/coprs_frontend/coprs/views/misc.py
index 7efcd2f..69530a9 100644
--- a/frontend/coprs_frontend/coprs/views/misc.py
+++ b/frontend/coprs_frontend/coprs/views/misc.py
@@ -169,10 +169,6 @@ def create_or_login(resp):
fasusername = resp.identity_url.replace(
".id.fedoraproject.org/", "").replace("http://",
"")
- if "lp" in resp.extensions:
- team_resp = resp.extensions['lp'] # name space for the teams extension
- flask.session["teams"] = team_resp.teams
-
# kidding me.. or not
if fasusername and (
(
@@ -188,6 +184,9 @@ def create_or_login(resp):
else:
user.mail = resp.email
user.timezone = resp.timezone
+ if "lp" in resp.extensions:
+ team_resp = resp.extensions['lp'] # name space for the teams
extension
+ user.openid_groups = { fas_groups: team_resp.teams }
db.session.add(user)
db.session.commit()