Skip to content

Commit e892643

Browse files
chore(control_silo): Move User model to new home in users package (#75597)
Part of consolidating (user) control silo resources to be located with other user related models. Leaves behind a shim for any getsentry references. Also includes a fix for backfill_outboxes to ensure batch.count doesn't become negative which caused tests in test_backfill_outboxes to fail. Ref(#73856) --------- Co-authored-by: Mark Story <[email protected]>
1 parent 3c02b74 commit e892643

File tree

246 files changed

+933
-897
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

246 files changed

+933
-897
lines changed

bin/mock-user

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import argparse
88

99

1010
def main(username, newsletter_consent_prompt=None):
11-
from sentry.models.user import User
11+
from sentry.users.models.user import User
1212

1313
user = User.objects.get(username__iexact=username)
1414

src/sentry/api/authentication.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@
3535
)
3636
from sentry.models.projectkey import ProjectKey
3737
from sentry.models.relay import Relay
38-
from sentry.models.user import User
3938
from sentry.relay.utils import get_header_relay_id, get_header_relay_signature
4039
from sentry.silo.base import SiloLimit, SiloMode
40+
from sentry.users.models.user import User
4141
from sentry.users.services.user import RpcUser
4242
from sentry.users.services.user.service import user_service
4343
from sentry.utils.linksign import process_signature

src/sentry/api/bases/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
from sentry.models.organization import OrganizationStatus
1414
from sentry.models.organizationmapping import OrganizationMapping
1515
from sentry.models.organizationmembermapping import OrganizationMemberMapping
16-
from sentry.models.user import User
1716
from sentry.organizations.services.organization import organization_service
17+
from sentry.users.models.user import User
1818
from sentry.users.services.user import RpcUser
1919
from sentry.users.services.user.service import user_service
2020

src/sentry/api/endpoints/group_ai_autofix.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
from sentry.autofix.utils import get_autofix_repos_from_project_code_mappings, get_autofix_state
2020
from sentry.integrations.utils.code_mapping import get_sorted_code_mapping_configs
2121
from sentry.models.group import Group
22-
from sentry.models.user import User
2322
from sentry.seer.signed_seer_api import sign_with_seer_secret
2423
from sentry.tasks.autofix import check_autofix_status
2524
from sentry.types.ratelimit import RateLimit, RateLimitCategory
25+
from sentry.users.models.user import User
2626
from sentry.users.services.user.service import user_service
2727

2828
logger = logging.getLogger(__name__)

src/sentry/api/endpoints/group_event_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
from sentry.issues.grouptype import GroupCategory
2323
from sentry.models.environment import Environment
2424
from sentry.models.group import Group
25-
from sentry.models.user import User
2625
from sentry.search.events.filter import (
2726
FilterConvertParams,
2827
convert_search_filter_to_snuba_query,
2928
format_search_filter,
3029
)
3130
from sentry.snuba.dataset import Dataset
3231
from sentry.types.ratelimit import RateLimit, RateLimitCategory
32+
from sentry.users.models.user import User
3333
from sentry.utils import metrics
3434

3535

src/sentry/api/endpoints/group_integration_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
from sentry.models.activity import Activity
1818
from sentry.models.group import Group
1919
from sentry.models.grouplink import GroupLink
20-
from sentry.models.user import User
2120
from sentry.shared_integrations.exceptions import IntegrationError, IntegrationFormError
2221
from sentry.signals import integration_issue_created, integration_issue_linked
2322
from sentry.types.activity import ActivityType
23+
from sentry.users.models.user import User
2424

2525
MISSING_FEATURE_MESSAGE = "Your organization does not have access to this feature."
2626

src/sentry/api/endpoints/group_integrations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from sentry.integrations.services.integration import RpcIntegration, integration_service
2121
from sentry.models.group import Group
2222
from sentry.models.grouplink import GroupLink
23-
from sentry.models.user import User
23+
from sentry.users.models.user import User
2424

2525

2626
class IntegrationIssueSerializer(IntegrationSerializer):

src/sentry/api/endpoints/group_similar_issues_embeddings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
from sentry.api.serializers import serialize
1515
from sentry.grouping.grouping_info import get_grouping_info
1616
from sentry.models.group import Group
17-
from sentry.models.user import User
1817
from sentry.seer.similarity.similar_issues import get_similarity_data_from_seer
1918
from sentry.seer.similarity.types import SeerSimilarIssueData, SimilarIssuesEmbeddingsRequest
2019
from sentry.seer.similarity.utils import get_stacktrace_string, killswitch_enabled
20+
from sentry.users.models.user import User
2121
from sentry.utils.safe import get_path
2222

2323
logger = logging.getLogger(__name__)

src/sentry/api/endpoints/index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from sentry.api.api_publish_status import ApiPublishStatus
55
from sentry.api.base import Endpoint, control_silo_endpoint
66
from sentry.api.serializers import serialize
7-
from sentry.models.user import User
7+
from sentry.users.models.user import User
88

99

1010
@control_silo_endpoint

src/sentry/api/endpoints/integrations/sentry_apps/installation/external_issue/actions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from sentry.mediators.external_issues.issue_link_creator import IssueLinkCreator
1111
from sentry.models.group import Group
1212
from sentry.models.project import Project
13-
from sentry.models.user import User
13+
from sentry.users.models.user import User
1414
from sentry.users.services.user.serial import serialize_rpc_user
1515

1616

src/sentry/api/endpoints/org_auth_tokens.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
from sentry.models.organizationmapping import OrganizationMapping
2020
from sentry.models.organizationmembermapping import OrganizationMemberMapping
2121
from sentry.models.orgauthtoken import MAX_NAME_LENGTH, OrgAuthToken
22-
from sentry.models.user import User
2322
from sentry.organizations.services.organization.model import (
2423
RpcOrganization,
2524
RpcUserOrganizationContext,
2625
)
2726
from sentry.security.utils import capture_security_activity
27+
from sentry.users.models.user import User
2828
from sentry.utils.security.orgauthtoken_token import (
2929
SystemUrlPrefixMissingException,
3030
generate_token,

src/sentry/api/endpoints/organization_onboarding_continuation_email.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from sentry.api.bases.organization import OrganizationEndpoint
99
from sentry.api.serializers.rest_framework.base import CamelSnakeSerializer
1010
from sentry.models.organization import Organization
11-
from sentry.models.user import User
11+
from sentry.users.models.user import User
1212
from sentry.utils.email import MessageBuilder
1313
from sentry.utils.strings import oxfordize_list
1414

src/sentry/api/endpoints/relocations/index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
from sentry.auth.elevated_mode import has_elevated_mode
2626
from sentry.models.files.file import File
2727
from sentry.models.relocation import Relocation, RelocationFile
28-
from sentry.models.user import MAX_USERNAME_LENGTH, User
2928
from sentry.options import get
3029
from sentry.search.utils import tokenize_query
3130
from sentry.signals import relocation_link_promo_code
3231
from sentry.slug.patterns import ORG_SLUG_PATTERN
3332
from sentry.tasks.relocation import uploading_start
33+
from sentry.users.models.user import MAX_USERNAME_LENGTH, User
3434
from sentry.users.services.user.model import RpcUser
3535
from sentry.users.services.user.service import user_service
3636
from sentry.utils.db import atomic_transaction

src/sentry/api/endpoints/user_authenticator_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
from sentry.auth.authenticators.u2f import U2fInterface, decode_credential_id
1616
from sentry.auth.staff import has_staff_option, is_active_staff
1717
from sentry.auth.superuser import is_active_superuser
18-
from sentry.models.user import User
1918
from sentry.security.utils import capture_security_activity
2019
from sentry.users.models.authenticator import Authenticator
20+
from sentry.users.models.user import User
2121
from sentry.utils.auth import MFA_SESSION_KEY
2222

2323

src/sentry/api/endpoints/user_authenticator_enroll.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
from sentry.auth.authenticators.sms import SmsInterface, SMSRateLimitExceeded
2121
from sentry.auth.authenticators.totp import TotpInterface
2222
from sentry.auth.authenticators.u2f import U2fInterface
23-
from sentry.models.user import User
2423
from sentry.organizations.services.organization import organization_service
2524
from sentry.security.utils import capture_security_activity
2625
from sentry.users.models.authenticator import Authenticator
26+
from sentry.users.models.user import User
2727
from sentry.utils.auth import MFA_SESSION_KEY
2828

2929
logger = logging.getLogger(__name__)

src/sentry/api/endpoints/user_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
from sentry.models.organization import OrganizationStatus
2626
from sentry.models.organizationmapping import OrganizationMapping
2727
from sentry.models.organizationmembermapping import OrganizationMemberMapping
28-
from sentry.models.user import User
2928
from sentry.models.useremail import UserEmail
3029
from sentry.organizations.services.organization import organization_service
3130
from sentry.organizations.services.organization.model import RpcOrganizationDeleteState
31+
from sentry.users.models.user import User
3232
from sentry.users.services.user.serial import serialize_generic_user
3333
from sentry.utils.dates import AVAILABLE_TIMEZONES
3434

src/sentry/api/endpoints/user_emails.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
from sentry.api.serializers import serialize
1212
from sentry.api.validators import AllowedEmailField
1313
from sentry.models.options.user_option import UserOption
14-
from sentry.models.user import User
1514
from sentry.models.useremail import UserEmail
15+
from sentry.users.models.user import User
1616

1717
logger = logging.getLogger("sentry.accounts")
1818

src/sentry/api/endpoints/user_identity_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
)
1818
from sentry.models.authidentity import AuthIdentity
1919
from sentry.models.identity import Identity
20-
from sentry.models.user import User
20+
from sentry.users.models.user import User
2121
from social_auth.models import UserSocialAuth
2222

2323

src/sentry/api/endpoints/user_index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
from sentry.api.permissions import SuperuserOrStaffFeatureFlaggedPermission
99
from sentry.api.serializers import serialize
1010
from sentry.db.models.query import in_iexact
11-
from sentry.models.user import User
1211
from sentry.search.utils import tokenize_query
12+
from sentry.users.models.user import User
1313

1414

1515
@control_silo_endpoint

src/sentry/api/endpoints/user_notification_settings_options.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
from sentry.api.serializers import serialize
1111
from sentry.api.validators.notifications import validate_type
1212
from sentry.models.notificationsettingoption import NotificationSettingOption
13-
from sentry.models.user import User
1413
from sentry.notifications.serializers import NotificationSettingsOptionSerializer
1514
from sentry.notifications.validators import UserNotificationSettingOptionWithValueSerializer
15+
from sentry.users.models.user import User
1616

1717

1818
@control_silo_endpoint

src/sentry/api/endpoints/user_notification_settings_options_detail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from sentry.api.base import control_silo_endpoint
88
from sentry.api.bases.user import UserEndpoint
99
from sentry.models.notificationsettingoption import NotificationSettingOption
10-
from sentry.models.user import User
10+
from sentry.users.models.user import User
1111

1212

1313
@control_silo_endpoint

src/sentry/api/endpoints/user_notification_settings_providers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
from sentry.api.validators.notifications import validate_type
1313
from sentry.integrations.types import PERSONAL_NOTIFICATION_PROVIDERS
1414
from sentry.models.notificationsettingprovider import NotificationSettingProvider
15-
from sentry.models.user import User
1615
from sentry.notifications.serializers import NotificationSettingsProviderSerializer
1716
from sentry.notifications.types import NotificationSettingsOptionEnum
1817
from sentry.notifications.validators import UserNotificationSettingsProvidersDetailsSerializer
18+
from sentry.users.models.user import User
1919

2020

2121
@control_silo_endpoint

src/sentry/api/endpoints/user_regions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
from sentry.auth.system import is_system_auth
1212
from sentry.models.organizationmapping import OrganizationMapping
1313
from sentry.models.organizationmembermapping import OrganizationMemberMapping
14-
from sentry.models.user import User
1514
from sentry.types.region import get_region_by_name
15+
from sentry.users.models.user import User
1616
from sentry.users.services.user import RpcUser
1717

1818

src/sentry/api/endpoints/user_subscriptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
from sentry.api.api_publish_status import ApiPublishStatus
88
from sentry.api.base import control_silo_endpoint
99
from sentry.api.bases.user import UserEndpoint
10-
from sentry.models.user import User
1110
from sentry.models.useremail import UserEmail
11+
from sentry.users.models.user import User
1212

1313

1414
class DefaultNewsletterValidator(serializers.Serializer):

src/sentry/api/fields/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from rest_framework import serializers
66

7-
from sentry.models.user import User
7+
from sentry.users.models.user import User
88
from sentry.users.services.user import RpcUser
99
from sentry.users.services.user.service import user_service
1010

src/sentry/api/helpers/group_index/index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
from sentry.models.project import Project
2323
from sentry.models.release import Release
2424
from sentry.models.savedsearch import SavedSearch, Visibility
25-
from sentry.models.user import User
2625
from sentry.signals import advanced_search_feature_gated
26+
from sentry.users.models.user import User
2727
from sentry.utils import metrics
2828
from sentry.utils.cursors import Cursor, CursorResult
2929

src/sentry/api/helpers/group_index/update.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@
4545
from sentry.models.grouptombstone import TOMBSTONE_FIELDS_FROM_GROUP, GroupTombstone
4646
from sentry.models.project import Project
4747
from sentry.models.release import Release, follows_semver_versioning_scheme
48-
from sentry.models.user import User
4948
from sentry.notifications.types import SUBSCRIPTION_REASON_MAP, GroupSubscriptionReason
5049
from sentry.signals import issue_resolved
5150
from sentry.types.activity import ActivityType
5251
from sentry.types.actor import Actor, ActorType
5352
from sentry.types.group import SUBSTATUS_UPDATE_CHOICES, GroupSubStatus, PriorityLevel
53+
from sentry.users.models.user import User
5454
from sentry.users.services.user import RpcUser
5555
from sentry.users.services.user.service import user_service
5656
from sentry.users.services.user_option import user_option_service

src/sentry/api/invite_helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
from sentry import audit_log, features
1010
from sentry.models.authidentity import AuthIdentity
1111
from sentry.models.authprovider import AuthProvider
12-
from sentry.models.user import User
1312
from sentry.models.useremail import UserEmail
1413
from sentry.organizations.services.organization import (
1514
RpcOrganizationMember,
1615
RpcUserInviteContext,
1716
organization_service,
1817
)
1918
from sentry.signals import member_joined
19+
from sentry.users.models.user import User
2020
from sentry.utils import metrics
2121
from sentry.utils.audit import create_audit_entry
2222

src/sentry/api/issue_search.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from sentry.models.organization import Organization
2626
from sentry.models.project import Project
2727
from sentry.models.team import Team
28-
from sentry.models.user import User
2928
from sentry.search.events.constants import EQUALITY_OPERATORS, INEQUALITY_OPERATORS
3029
from sentry.search.events.filter import ParsedTerms, to_list
3130
from sentry.search.utils import (
@@ -38,6 +37,7 @@
3837
parse_user_value,
3938
)
4039
from sentry.types.group import SUBSTATUS_UPDATE_CHOICES, GroupSubStatus, PriorityLevel
40+
from sentry.users.models.user import User
4141
from sentry.users.services.user import RpcUser
4242

4343
is_filter_translation = {

src/sentry/api/serializers/models/event.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
from sentry.models.eventattachment import EventAttachment
1717
from sentry.models.eventerror import EventError
1818
from sentry.models.release import Release
19-
from sentry.models.user import User
2019
from sentry.models.userreport import UserReport
2120
from sentry.sdk_updates import SdkSetupState, get_suggested_updates
2221
from sentry.search.utils import convert_user_tag_to_query, map_device_class_level
2322
from sentry.stacktraces.processing import find_stacktraces_in_data
23+
from sentry.users.models.user import User
2424
from sentry.utils.json import prune_empty_keys
2525
from sentry.utils.safe import get_path
2626

src/sentry/api/serializers/models/group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
from sentry.models.organizationmember import OrganizationMember
4141
from sentry.models.orgauthtoken import is_org_auth_token_auth
4242
from sentry.models.team import Team
43-
from sentry.models.user import User
4443
from sentry.notifications.helpers import collect_groups_by_project, get_subscription_from_attributes
4544
from sentry.notifications.services import notifications_service
4645
from sentry.notifications.types import NotificationSettingEnum
@@ -52,6 +51,7 @@
5251
from sentry.tagstore.types import GroupTagValue
5352
from sentry.tsdb.snuba import SnubaTSDB
5453
from sentry.types.group import SUBSTATUS_TO_STR, PriorityLevel
54+
from sentry.users.models.user import User
5555
from sentry.users.services.user.serial import serialize_generic_user
5656
from sentry.users.services.user.service import user_service
5757
from sentry.utils.cache import cache

src/sentry/api/serializers/models/organization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363
from sentry.models.organizationonboardingtask import OrganizationOnboardingTask
6464
from sentry.models.project import Project
6565
from sentry.models.team import Team, TeamStatus
66-
from sentry.models.user import User
6766
from sentry.organizations.absolute_url import generate_organization_url
6867
from sentry.organizations.services.organization import RpcOrganizationSummary
68+
from sentry.users.models.user import User
6969
from sentry.users.services.user.service import user_service
7070

7171
_ORGANIZATION_SCOPE_PREFIX = "organizations:"

src/sentry/api/serializers/models/organization_member/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from sentry.api.serializers import Serializer, register, serialize
77
from sentry.integrations.models.external_actor import ExternalActor
88
from sentry.models.organizationmember import OrganizationMember
9-
from sentry.models.user import User
9+
from sentry.users.models.user import User
1010
from sentry.users.services.user import RpcUser
1111
from sentry.users.services.user.service import user_service
1212

src/sentry/api/serializers/models/organization_member/expand/projects.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from sentry.models.organizationmemberteam import OrganizationMemberTeam
77
from sentry.models.projectteam import ProjectTeam
88
from sentry.models.team import TeamStatus
9-
from sentry.models.user import User
9+
from sentry.users.models.user import User
1010

1111
from ..base import OrganizationMemberSerializer
1212
from ..response import OrganizationMemberWithProjectsResponse

src/sentry/api/serializers/models/organization_member/expand/roles.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
from sentry.api.serializers import serialize
77
from sentry.models.organizationmember import OrganizationMember
8-
from sentry.models.user import User
98
from sentry.roles import organization_roles, team_roles
109
from sentry.roles.manager import OrganizationRole, Role
10+
from sentry.users.models.user import User
1111
from sentry.users.services.user import UserSerializeType
1212
from sentry.users.services.user.service import user_service
1313

0 commit comments

Comments
 (0)