Merge branch 'master' into v6.0
[osm/LW-UI.git] / authosm / models.py
index 36a7b1b..74c1f1e 100644 (file)
@@ -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=255)
     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