def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) url = request.DATA.get("url", None) token = self._get_token(request) project_id = request.DATA.get("project", None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) if not url: raise exc.WrongArguments(_("The url param is needed")) importer = JiraNormalImporter(request.user, url, token) users = importer.list_users() for user in users: user["user"] = None if not user["email"]: continue try: taiga_user = User.objects.get(email=user["email"]) except User.DoesNotExist: continue user["user"] = { "id": taiga_user.id, "full_name": taiga_user.get_full_name(), "gravatar_id": get_user_gravatar_id(taiga_user), "photo": get_user_photo_url(taiga_user), } return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get("token", None) project_id = request.DATA.get("project", None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = AsanaImporter(request.user, token) try: users = importer.list_users(project_id) except exceptions.InvalidRequest: raise exc.BadRequest(_("Invalid Asana API request")) except exceptions.FailedRequest: raise exc.BadRequest(_("Failed to make the request to Asana API")) for user in users: if user["detected_user"]: user["user"] = { "id": user["detected_user"].id, "full_name": user["detected_user"].get_full_name(), "gravatar_id": get_user_gravatar_id(user["detected_user"]), "photo": get_user_photo_url(user["detected_user"]), } del user["detected_user"] return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = AsanaImporter(request.user, token) try: users = importer.list_users(project_id) except exceptions.InvalidRequest: raise exc.BadRequest(_('Invalid Asana API request')) except exceptions.FailedRequest: raise exc.BadRequest(_('Failed to make the request to Asana API')) for user in users: if user['detected_user']: user['user'] = { 'id': user['detected_user'].id, 'full_name': user['detected_user'].get_full_name(), 'gravatar_id': get_user_gravatar_id(user['detected_user']), 'photo': get_user_photo_url(user['detected_user']), } del (user['detected_user']) return response.Ok(users)
def get_data(self, obj): # Updates the data user info saved if the user exists if hasattr(obj, "_prefetched_user"): user = obj._prefetched_user else: User = get_user_model() userData = obj.data.get("user", None) try: user = User.objects.get(id=userData["id"]) except User.DoesNotExist: user = None if user is not None: obj.data["user"] = { "id": user.pk, "name": user.get_full_name(), "photo": get_user_photo_url(user), "big_photo": get_user_big_photo_url(user), "gravatar_id": get_user_gravatar_id(user), "username": user.username, "is_profile_visible": user.is_active and not user.is_system, "date_joined": user.date_joined } if "values_diff" in obj.data and "attachments" in obj.data["values_diff"]: [[self.parse_url(item) for item in value] for key, value in obj.data["values_diff"]["attachments"].items() if value] return obj.data
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = TrelloImporter(request.user, token) users = importer.list_users(project_id) for user in users: user['user'] = None if not user['email']: continue try: taiga_user = User.objects.get(email=user['email']) except User.DoesNotExist: continue user['user'] = { 'id': taiga_user.id, 'full_name': taiga_user.get_full_name(), 'gravatar_id': get_user_gravatar_id(taiga_user), 'photo': get_user_photo_url(taiga_user), } return response.Ok(users)
def get_data(self, obj): # Updates the data user info saved if the user exists if hasattr(obj, "_prefetched_user"): user = obj._prefetched_user else: User = get_user_model() userData = obj.data.get("user", None) try: user = User.objects.get(id=userData["id"]) except User.DoesNotExist: user = None if user is not None: obj.data["user"] = { "id": user.pk, "name": user.get_full_name(), "photo": get_user_photo_url(user), "big_photo": get_user_big_photo_url(user), "gravatar_id": get_user_gravatar_id(user), "username": user.username, "is_profile_visible": user.is_active and not user.is_system, "date_joined": user.date_joined, "projects_activity": user.projects_activity } return obj.data
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = AsanaImporter(request.user, token) try: users = importer.list_users(project_id) except exceptions.InvalidRequest: raise exc.BadRequest(_('Invalid Asana API request')) except exceptions.FailedRequest: raise exc.BadRequest(_('Failed to make the request to Asana API')) for user in users: if user['detected_user']: user['user'] = { 'id': user['detected_user'].id, 'full_name': user['detected_user'].get_full_name(), 'gravatar_id': get_user_gravatar_id(user['detected_user']), 'photo': get_user_photo_url(user['detected_user']), } del(user['detected_user']) return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = PivotalImporter(request.user, token) users = importer.list_users(project_id) for user in users: user['user'] = None if not user['email']: continue try: taiga_user = User.objects.get(email=user['email']) except User.DoesNotExist: continue user['user'] = { 'id': taiga_user.id, 'full_name': taiga_user.get_full_name(), 'gravatar_id': get_user_gravatar_id(taiga_user), 'photo': get_user_photo_url(taiga_user), } return response.Ok(users)
def get_data(self, obj): # Updates the data user info saved if the user exists if hasattr(obj, "_prefetched_user"): user = obj._prefetched_user else: User = get_user_model() userData = obj.data.get("user", None) try: user = User.objects.get(id=userData["id"]) except User.DoesNotExist: user = None if user is not None: obj.data["user"] = { "id": user.pk, "name": user.get_full_name(), "photo": get_user_photo_url(user), "big_photo": get_user_big_photo_url(user), "gravatar_id": get_user_gravatar_id(user), "username": user.username, "is_profile_visible": user.is_active and not user.is_system, "date_joined": user.date_joined } return obj.data
def get_assigned_to_gravatar_id(self, obj): type = getattr(obj, "type", "") if type == "project": return None UserData = namedtuple("UserData", ["photo", "email"]) user_data = UserData(photo=obj.assigned_to_photo, email=obj.assigned_to_email or "") return get_user_gravatar_id(user_data)
def get_user(self, entry): user = {"pk": None, "username": None, "name": None, "photo": None, "is_active": False} user.update(entry.user) user["photo"] = get_user_photo_url(entry.owner) user["gravatar_id"] = get_user_gravatar_id(entry.owner) if entry.owner: user["is_active"] = entry.owner.is_active if entry.owner.is_active or entry.owner.is_system: user["name"] = entry.owner.get_full_name() user["username"] = entry.owner.username return user
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = GithubImporter(request.user, token) users = importer.list_users(project_id) for user in users: if user['detected_user']: user['user'] = { 'id': user['detected_user'].id, 'full_name': user['detected_user'].get_full_name(), 'gravatar_id': get_user_gravatar_id(user['detected_user']), 'photo': get_user_photo_url(user['detected_user']), } del(user['detected_user']) return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get('token', None) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = GithubImporter(request.user, token) users = importer.list_users(project_id) for user in users: if user['detected_user']: user['user'] = { 'id': user['detected_user'].id, 'full_name': user['detected_user'].get_full_name(), 'gravatar_id': get_user_gravatar_id(user['detected_user']), 'photo': get_user_photo_url(user['detected_user']), } del (user['detected_user']) return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) token = request.DATA.get("token", None) project_id = request.DATA.get("project", None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) importer = GithubImporter(request.user, token) users = importer.list_users(project_id) for user in users: if user["detected_user"]: user["user"] = { "id": user["detected_user"].id, "full_name": user["detected_user"].get_full_name(), "gravatar_id": get_user_gravatar_id(user["detected_user"]), "photo": get_user_photo_url(user["detected_user"]), } del user["detected_user"] return response.Ok(users)
def list_users(self, request, *args, **kwargs): self.check_permissions(request, "list_users", None) url = request.DATA.get('url', None) token = self._get_token(request) project_id = request.DATA.get('project', None) if not project_id: raise exc.WrongArguments(_("The project param is needed")) if not url: raise exc.WrongArguments(_("The url param is needed")) importer = JiraNormalImporter(request.user, url, token) try: users = importer.list_users() except Exception as e: # common error due to modern Jira versions which are unsupported by Taiga raise exc.BadRequest( _(""" There was an error; probably due to an unsupported Jira version. Taiga does not support Jira releases from 8.6.""")) for user in users: user['user'] = None if not user['email']: continue try: taiga_user = User.objects.get(email=user['email']) except User.DoesNotExist: continue user['user'] = { 'id': taiga_user.id, 'full_name': taiga_user.get_full_name(), 'gravatar_id': get_user_gravatar_id(taiga_user), 'photo': get_user_photo_url(taiga_user), } return response.Ok(users)
def get_gravatar_id(self, obj): return get_user_gravatar_id(obj.user)
def get_gravatar_id(self, user): return get_user_gravatar_id(user)