Exemple #1
0
def resolve(type, *args):
    domain = domains.get_active_domain()
    url_tmpl = "{scheme}//{domain}{url}"

    scheme = domain.scheme and "{0}:".format(domain.scheme) or ""
    url = URLS[type].format(*args)
    return url_tmpl.format(scheme=scheme, domain=domain.domain, url=url)
Exemple #2
0
    def _create_domain_member(self, user):
        domain = get_active_domain()

        if domain.members.filter(user=user).count() == 0:
            domain_member = DomainMember(domain=domain, user=user, email=user.email,
                                     is_owner=False, is_staff=False)
            domain_member.save()
Exemple #3
0
    def create_from_project(self, request, **kwargs):
        project_id = request.DATA.get('project_id', None)
        template_name = request.DATA.get('template_name', None)
        template_description = request.DATA.get('template_description', None)

        if not template_name:
            raise ParseError("Not valid template name")

        template_slug = slugify_uniquely(template_name, models.ProjectTemplate)

        domain = get_active_domain()

        try:
            project = models.Project.objects.get(domain=domain, pk=project_id)
        except models.Project.DoesNotExist:
            raise ParseError("Not valid project_id")

        template = models.ProjectTemplate(
            name=template_name,
            slug=template_slug,
            description=template_description,
            domain=domain,
        )
        template.load_data_from_project(project)
        template.save()
        return Response(self.serializer_class(template).data, status=201)
Exemple #4
0
 def has_object_permission(self, request, view, obj):
     current_domain = get_active_domain()
     if obj.domain:
         return obj.domain == current_domain and current_domain.user_is_owner(request.user)
     else:
         if request.method == "GET":
             return current_domain.user_is_owner(request.user)
         else:
             False
Exemple #5
0
    def _create_response(self, user):
        serializer = UserSerializer(user)
        response_data = serializer.data

        domain = get_active_domain()
        response_data['is_site_owner'] = domain.user_is_owner(user)
        response_data['is_site_staff'] = domain.user_is_staff(user)
        response_data["auth_token"] = auth.get_token_for_user(user)
        return response_data
Exemple #6
0
    def has_permission(self, request, view):
        if request.method in self.safe_methods:
            return True

        domain = get_active_domain()
        if request.method in ["POST", "PUT", "GET", "PATCH"]:
            return domain.user_is_staff(request.user) or domain.user_is_owner(request.user)
        elif request.method == "DELETE":
            return domain.user_is_owner(request.user)
        return super().has_permission(request, view)
Exemple #7
0
    def has_object_permission(self, request, view, obj):
        if request.method in self.safe_methods:
            return True

        domain = get_active_domain()
        if request.method in ["POST", "PUT", "GET", "PATCH"]:
            return domain.user_is_staff(request.user)
        elif request.method == "DELETE":
            return domain.user_is_owner(request.user)
        return super().has_object_permission(request, view, obj)
Exemple #8
0
def create_project(id, owner, save=True):
    model = get_model("projects", "Project")

    instance = model(name="Project {0}".format(id),
                     description="This is a test project",
                     owner=owner,
                     total_story_points=id,
                     domain=get_active_domain())

    if save:
        instance.save()
    return instance
Exemple #9
0
def create_project(id, owner, save=True):
    model = get_model("projects", "Project")

    instance = model(
       name="Project {0}".format(id),
       description="This is a test project",
       owner=owner,
       total_story_points=id,
       domain=get_active_domain()
    )

    if save:
        instance.save()
    return instance
Exemple #10
0
def project_post_save(sender, instance, created, **kwargs):
    """
    Populate new project dependen default data
    """
    if not created:
        return

    template_slug = getattr(instance, "template",
                            settings.DEFAULT_PROJECT_TEMPLATE)
    template = ProjectTemplate.objects.filter(slug=template_slug).get(
        models.Q(domain__isnull=True) | models.Q(domain=get_active_domain()))

    template.apply_to_project(instance)
    instance.save()
Exemple #11
0
 def has_permission(self, request, view):
     domain = get_active_domain()
     return domain.user_is_owner(request.user)
Exemple #12
0
 def get_queryset(self):
     qs = super().get_queryset()
     qs = qs.filter(
         Q(owner=self.request.user)
         | Q(members=self.request.user)).filter(domain=get_active_domain())
     return qs.distinct()
Exemple #13
0
 def get_queryset(self):
     domain = get_active_domain()
     return domain.projects.all()
Exemple #14
0
 def get_queryset(self):
     domain = get_active_domain()
     return models.ProjectTemplate.objects.filter(
         Q(domain=domain) | Q(domain__isnull=True))
Exemple #15
0
 def get_queryset(self):
     qs = super().get_queryset()
     qs = qs.filter(Q(owner=self.request.user) |
                    Q(members=self.request.user)).filter(domain=get_active_domain())
     return qs.distinct()
Exemple #16
0
 def get_queryset(self):
     domain = get_active_domain()
     return domain.projects.all()