X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=authosm%2Fmodels.py;h=09adfed7e3962f1ec4babac0b850c95e3dc23a67;hb=2f127c91b9a12bd7131218f11a89aee83ec1c52e;hp=36a7b1b89866a3dc6795880661728704c23d2c9b;hpb=99f922f1dc8623a444930a621ce3696802d619c0;p=osm%2FLW-UI.git diff --git a/authosm/models.py b/authosm/models.py index 36a7b1b..09adfed 100644 --- a/authosm/models.py +++ b/authosm/models.py @@ -67,8 +67,9 @@ class AbstractOsmUser(AbstractBaseUser, PermissionsMixin): current_project = models.CharField(_('project_id'), max_length=255) psw = models.CharField(_('psw'), max_length=36) - token = models.CharField(_('token'), max_length=36) + token = models.CharField(_('token'), max_length=512) project_id = models.CharField(_('project_id'), max_length=36) + project_name = models.CharField(_('project_name'), max_length=36, default='') token_expires = models.FloatField(_('token_expires'), max_length=36) objects = OsmUserManager() @@ -89,6 +90,14 @@ class AbstractOsmUser(AbstractBaseUser, PermissionsMixin): return {'id': self.token, 'expires': self.token_expires, 'project_id': self.project_id} return None + def get_projects(self): + client = Client() + user_info = client.get_user_info(self.get_token(), self.username) + if 'error' in user_info and user_info['error'] is True: + return [] + else: + return user_info['data']['project_role_mappings'] + def switch_project(self, project_id): client = Client() result = client.switch_project({'project_id': project_id, 'username': self.username, 'password': self.psw}) @@ -97,6 +106,7 @@ class AbstractOsmUser(AbstractBaseUser, PermissionsMixin): else: self.token = result['data']['id'] self.project_id = result['data']['project_id'] + self.project_name = result['data']['project_name'] self.token_expires = result['data']['expires'] self.save() return True