- log.info('User %s not found', userid)
- log.debug('Exception %s' % e)
- proj_list = []
- for project in project_data:
- proj_list.append(project["project"])
- for proj in project_data:
- role_obj = self.common_db.get_role_by_name(proj["role"])
- is_admin = role_obj["permissions"].get("admin")
- self.grafana.create_grafana_teams_members(proj["project"], user_name, is_admin, proj_list)
+ users_proj_list = user.get("project_role_mappings")
+ for project in users_proj_list:
+ proj_data = self.common_db.get_project(project["project"])
+ proj_list.append(proj_data['name'])
+ for proj in project_data:
+ if self.keystone:
+ # Backend authentication type is keystone
+ try:
+ # Getting project and role objects from keystone using ids
+ role_obj = self.keystone.getRoleById(proj["role"])
+ proj_data = self.keystone.getProjectsByProjectId(proj["project"])
+ log.info('role object {} {}'.format(role_obj.permissions, proj_data.name))
+ is_admin = role_obj.permissions['admin']
+ except Exception:
+ # Getting project and role objects from keystone using names
+ role_obj = self.keystone.getRoleByName(proj["role"])[0]
+ proj_data = self.keystone.getProjectsByProjectName(proj["project"])[0]
+ is_admin = role_obj.to_dict().get("permissions").get('admin')
+ log.info('role object {} {}'.format(role_obj.to_dict(), proj_data.name))
+ proj_name = proj_data.name
+ else:
+ # Backend authentication type is internal
+ try:
+ # Getting project and role object from commondb using names
+ role_obj = self.common_db.get_role_by_name(proj["role"])
+ proj_name = proj["project"]
+ except Exception:
+ # Getting project and role object from commondb using ids
+ role_obj = self.common_db.get_role_by_id(proj["role"])
+ proj_data = self.common_db.get_project(proj["project"])
+ proj_name = proj_data['name']
+ is_admin = role_obj["permissions"].get("admin")
+ self.grafana.create_grafana_teams_members(proj_name, user_name, is_admin, proj_list)