Ejemplo n.º 1
0
def update_organization(inteligence_organization: int, organization_name: str,
                        user_email: str):
    ai_client = IntelligenceRESTClient()
    ai_client.update_organization(organization_id=inteligence_organization,
                                  organization_name=organization_name,
                                  user_email=user_email)
    return True
Ejemplo n.º 2
0
def create_organization(organization_name: str, user_email: str):
    ai_client = IntelligenceRESTClient()
    organization = ai_client.create_organization(
        organization_name=organization_name,
        user_email=user_email,
    )
    return {"id": organization.id}
Ejemplo n.º 3
0
def delete_organization(inteligence_organization: int, user_email):
    ai_client = IntelligenceRESTClient()
    ai_client.delete_organization(
        organization_id=inteligence_organization,
        user_email=user_email,
    )
    return True
Ejemplo n.º 4
0
def org_authorizations(sender, instance, created, **kwargs):

    if instance.role is not OrganizationLevelRole.NOTHING.value:
        if created:
            organization_permission_mapper = {
                OrganizationRole.ADMIN.value: ProjectRole.MODERATOR.value,
                OrganizationRole.CONTRIBUTOR.value:
                ProjectRole.CONTRIBUTOR.value,
                OrganizationRole.SUPPORT.value: ProjectRole.SUPPORT.value,
            }
            for project in instance.organization.project.all():
                project_perm = project.project_authorizations.filter(
                    user=instance.user)
                project_role = organization_permission_mapper.get(
                    instance.role, ProjectRole.NOT_SETTED.value)
                if not project_perm.exists():
                    project.project_authorizations.create(
                        user=instance.user,
                        role=project_role,
                        organization_authorization=instance,
                    )
                else:
                    project_perm = project_perm.first()
                    if instance.role > project_perm.role:
                        project_perm.role = project_role
                        project_perm.save(update_fields=["role"])
        if not settings.TESTING:
            ai_client = IntelligenceRESTClient()
            ai_client.update_user_permission_organization(
                organization_id=instance.organization.inteligence_organization,
                user_email=instance.user.email,
                permission=instance.role)
Ejemplo n.º 5
0
 def perform_destroy(self, instance):
     intelligence_organization = instance.inteligence_organization
     instance.delete()
     ai_client = IntelligenceRESTClient()
     ai_client.delete_organization(
         organization_id=intelligence_organization,
         user_email=self.request.user.email)
Ejemplo n.º 6
0
def update_user_permission_organization(inteligence_organization: int,
                                        user_email: str, permission: int):
    ai_client = IntelligenceRESTClient()
    ai_client.update_user_permission_organization(
        organization_id=inteligence_organization,
        user_email=user_email,
        permission=permission,
    )
    return True
Ejemplo n.º 7
0
def update_user_language(user_email: str, language: str):
    utils.get_grpc_types().get("flow").update_language(
        user_email=user_email,
        language=language,
    )
    IntelligenceRESTClient().update_language(
        user_email=user_email,
        language=language,
    )
    return True
Ejemplo n.º 8
0
def migrate_organization(user_email: str):
    user = User.objects.get(email=user_email)
    ai_client = IntelligenceRESTClient()

    organizations = ai_client.list_organizations(user_email=user_email)

    for organization in organizations:
        org, created = Organization.objects.get_or_create(
            inteligence_organization=organization.get("id"),
            defaults={
                "name": organization.get("name"),
                "description": ""
            },
        )

        role = ai_client.get_user_organization_permission_role(
            user_email=user_email, organization_id=organization.get("id"))

        org.authorizations.create(user=user, role=role)
Ejemplo n.º 9
0
def sync_repositories_statistics():
    flow_instance = utils.get_grpc_types().get("flow")
    ai_client = IntelligenceRESTClient()

    for project in Project.objects.all():
        classifiers_project = flow_instance.get_classifiers(
            project_uuid=str(project.flow_organization),
            classifier_type="bothub",
            is_active=True,
        )
        try:
            intelligence_count = int(
                ai_client.get_count_intelligences_project(
                    classifiers=classifiers_project, ).get(
                        "repositories_count"))
        except Exception:
            intelligence_count = 0

        project.intelligence_count = intelligence_count
        project.save(update_fields=["inteligence_count"])
Ejemplo n.º 10
0
def search_project(organization_id: int, project_uuid: str, text: str):
    flow_result = (utils.get_grpc_types().get("flow").get_project_flows(
        project_uuid=project_uuid,
        flow_name=text,
    ))
    inteligence_result = (
        IntelligenceRESTClient().get_organization_intelligences(
            intelligence_name=text, organization_id=organization_id))
    return {
        "flow": flow_result,
        "inteligence": inteligence_result,
    }
Ejemplo n.º 11
0
    def create(self, validated_data):
        organization = {"id": 0}
        if not settings.TESTING:
            ai_client = IntelligenceRESTClient()
            organization = ai_client.create_organization(
                user_email=self.context["request"].user.email,
                organization_name=validated_data.get("name"))

        validated_data.update(
            {"inteligence_organization": organization.get("id")})

        # Added for the manager to set the date when the next invoice will be generated
        validated_data.update({
            "organization_billing__cycle":
            BillingPlan._meta.get_field("cycle").default
        })

        instance = super(OrganizationSeralizer, self).create(validated_data)

        instance.authorizations.create(user=self.context["request"].user,
                                       role=OrganizationRole.ADMIN.value)

        return instance