Esempio n. 1
0
 def get_token(cls, user):
     request = get_request()
     token = super().get_token(user)
     token['superuser'] = user.is_superuser
     token['groups'] = TokenObtainPairWithUserDataSerializer.get_groups(
         user)
     return token
Esempio n. 2
0
 def save(self, *args, **kwargs):
     if not hasattr(self, self.owner_field_name) or not getattr(
             self, self.owner_field_name):
         request = get_request()
         if request.user and request.user.pk:
             setattr(self, self.owner_field_name, request.user)
     super().save(*args, **kwargs)
Esempio n. 3
0
    def my_get_data(self, *args, **kwargs):
        # get_data = super().aet_data(self, request, *args, **kwargs)
        request = get_request()
        get_data = {}
        get_data['url_sub'] = None
        get_data['url_main'] = None
        
        url_path = request.path
        url_split = url_path.split('/')
        url_dict = {}
        flag = 0
        url_path = "{0}://{1}/".format(request.scheme, request.get_host())
        # try:
        get_data['contents'] = None
        get_data['book_info'] = None
        get_data['category_info'] = None
        get_data['author_info'] = None
        get_data['publisher_info'] = None
        for item in url_split[1:]:
            if item == "":
                continue

            if flag != 0 :
                if flag == 1:
                    q = Book.objects.get(post_day=item)
                    get_data['book_info'] = q.title
                    get_data['contents'] = q.contents
                    get_data['title_info'] = q.title
                if flag == 2:
                    q = Category.objects.get(category=item)
                    get_data['category_info'] = q.get_category_display
                    get_data['contents'] = q.contents
                    get_data['title_info'] = q.title
                if flag == 3:
                    q = Author.objects.get(author_eng=item)
                    get_data['author_info'] = q.author
                    get_data['contents'] = q.contents
                    get_data['author_info_q'] = Book.objects.filter(Author_info=q.id)
                    get_data['title_info'] = q.title
                if flag == 4:
                    q = Publisher.objects.get(publisher_eng=item)
                    get_data['publisher_info'] = q.publisher
                    get_data['contents'] = q.contents
                    get_data['title_info'] = q.title
                get_data["url_main"] = item
                return get_data

            if item == "books":
                flag = 1
            if item == "categorys":
                flag = 2
            if item == "authors":
                flag = 3
            if item == "publishers":
                flag = 4

            get_data["url_sub"] = item
        return get_data
Esempio n. 4
0
    def db_for_read(self, model, **hints):
        request = get_request()

        try:
            if "/api" in request.path:
                return "replicas"
        except AttributeError:
            pass

        return "default"
Esempio n. 5
0
def my_companies():
    request: HttpRequest = get_request()
    if request and request.user:
        user = request.user
        if user.is_superuser:
            return {}
        else:
            _my_companies = [
                x.company.id
                for x in user.companies.select_related('company').all()
            ]
            return {'pk__in': _my_companies}
Esempio n. 6
0
def my_tasks():
    request: HttpRequest = get_request()
    if request and request.user:
        user = request.user
        if user.is_superuser:
            return {}
        else:
            return {
                'company__in': [
                    x.company
                    for x in user.companies.select_related('company').all()
                ]
            }
    def get_validated_token(self, raw_token):
        """
        Validates an encoded JSON web token and returns a validated token
        wrapper object.
        """
        messages = []
        for AuthToken in api_settings.AUTH_TOKEN_CLASSES:
            try:
                token = AuthToken(raw_token)
                get_request().session['token_type'] = AuthToken.token_type
                if AuthToken.token_type == 'refresh':
                    get_request().session['access_token'] = str(token.access_token)
                    get_request().session['refresh_token'] = str(token)
                return token
            except TokenError as e:
                messages.append({'token_class': AuthToken.__name__,
                                 'token_type': AuthToken.token_type,
                                 'message': e.args[0]})

        raise InvalidToken({
            'detail': 'INVALID_TOKEN',
            'messages': messages,
        })
Esempio n. 8
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     user = get_request().user
     companie_ids = [x.company_id for x in user.companies.all()]
     self.fields['company'].queryset = m.Company.objects.filter(
         pk__in=companie_ids).order_by('name')
     self.fields['project'].queryset = m.Project.objects.filter(
         company_id__in=companie_ids).order_by('name')
     self.fields['staffs'].queryset = m.Staff.objects.filter(
         company_id__in=companie_ids).order_by('name')
     self.initial = {
         'company': self.fields['company'].queryset.last(),
         'project': self.fields['project'].queryset.last(),
         'staffs': self.fields['staffs'].queryset.all(),
         'start_date': datetime.datetime.now().strftime('%Y-%m-%d')
     }
Esempio n. 9
0
 def send_messages(self, email_messages):
     request = get_request()
     # Test is needed to trick bandit with an unapproved email
     if request is None or request.user.is_anonymous:
         email = "*****@*****.**"
     else:
         email = request.user.email
     setattr(settings, "BANDIT_EMAIL", [email, "*****@*****.**"])
     for message in email_messages:
         message.subject = f"[TEST] {message.subject}"
         try:
             message.alternatives = [(
                 message.alternatives[0][0].replace(
                     '<div id="hijacked"></div>',
                     "<br>HIJACKED EMAIL! Email only send to you as a test.<br>",
                 ),
                 "text/html",
             )]
         except:  # noqa: E722
             pass
     super().send_messages(email_messages)
Esempio n. 10
0
 def get_queryset(self):
     request = get_request()
     app_label = self.model._meta.app_label
     django_item_owner_model_permit_all = "{}.django_item_owner_model_permit_all".format(
         app_label)
     django_item_share_model_permit_all = "{}.django_item_share_model_permit_all".format(
         app_label)
     queryset = super().get_queryset()
     if request.user.has_perm(
             django_item_owner_model_permit_all) or request.user.has_perm(
                 django_item_share_model_permit_all):
         return queryset
     else:
         filter_expr = Q(pk=0)
         if issubclass(self.model, DjangoItemOwnerModel):
             filter_expr = filter_expr | Q(
                 **{
                     self.model.owner_field_name: request.user,
                 })
         if issubclass(self.model, DjangoItemShareModel):
             filter_expr = filter_expr | Q(
                 **{self.model.share_users_field_name: request.user})
         queryset = queryset.filter(filter_expr)
         return queryset
Esempio n. 11
0
def get_user_object_id(request=None):
    if request is None:
        request = get_request()
    user_object_id = request.session["user_object_id"]
    return user_object_id
Esempio n. 12
0
def get_access_token(request=None):
    if request is None:
        request = get_request()
    access_token = request.session["access_token"]
    print(access_token)
    return access_token
Esempio n. 13
0
 def save(self, **kwargs):
     if not self.pm:
         self.pm = get_request().user
     ret = super().save(**kwargs)
     return ret