• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / fx-private-relay / fcdf01b6-3e0b-4e2c-ab03-9f172d8d48f0

21 Jun 2024 08:34PM UTC coverage: 85.333% (-0.04%) from 85.369%
fcdf01b6-3e0b-4e2c-ab03-9f172d8d48f0

Pull #4798

circleci

jwhitlock
Change to mock_free_phones_user
Pull Request #4798: MPP-4763 - Prefer `user.profile` to `Profile.objects.get(user=user)`

3988 of 5123 branches covered (77.85%)

Branch coverage included in aggregate %.

109 of 113 new or added lines in 8 files covered. (96.46%)

1 existing line in 1 file now uncovered.

15718 of 17970 relevant lines covered (87.47%)

10.33 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

64.71
/api/permissions.py
1
from django.contrib.auth.models import AnonymousUser
1✔
2

3
from rest_framework import permissions
1✔
4
from rest_framework.request import Request
1✔
5
from rest_framework.views import APIView
1✔
6
from waffle import flag_is_active
1✔
7

8
READ_METHODS = ["GET", "HEAD"]
1✔
9

10

11
class IsOwner(permissions.BasePermission):
1✔
12
    def has_object_permission(self, request, view, obj):
1✔
13
        return obj.user == request.user
1✔
14

15

16
class HasPremium(permissions.BasePermission):
1✔
17
    def has_permission(self, request: Request, view: APIView) -> bool:
1✔
NEW
18
        if isinstance(request.user, AnonymousUser):
×
NEW
19
            return False
×
20
        if request.method in READ_METHODS:
×
21
            return True
×
NEW
22
        return request.user.profile.has_premium
×
23

24

25
class HasPhoneService(permissions.BasePermission):
1✔
26
    def has_permission(self, request: Request, view: APIView) -> bool:
1✔
27
        if isinstance(request.user, AnonymousUser):
1!
NEW
28
            return False
×
29
        if request.method in READ_METHODS:
1✔
30
            return True
1✔
31
        return request.user.profile.has_phone
1✔
32

33

34
class CanManageFlags(permissions.BasePermission):
1✔
35
    def has_permission(self, request, view):
1✔
36
        return flag_is_active(request, "manage_flags") and request.user.email.endswith(
×
37
            "@mozilla.com"
38
        )
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc