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)
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()
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)
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
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
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)
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)
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
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
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()
def has_permission(self, request, view): domain = get_active_domain() return domain.user_is_owner(request.user)
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()
def get_queryset(self): domain = get_active_domain() return domain.projects.all()
def get_queryset(self): domain = get_active_domain() return models.ProjectTemplate.objects.filter( Q(domain=domain) | Q(domain__isnull=True))
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()