activity.GenericMozillaUser
Model Info
Key |
Value |
---|---|
Model Name |
GenericMozillaUser |
Verbose Name |
generic mozilla user |
Verbose Name Plural |
generic mozilla users |
Docstring |
GenericMozillaUser(id, created, modified, password, last_login, username, display_name, email, averagerating, biography, deleted, display_collections, homepage, location, notes, occupation, picture_type, read_dev_agreement, last_login_ip, email_changed, banned, has_full_profile, fxa_id, auth_id, basket_token, bypass_upload_restrictions) |
Is Abstract |
False |
Is Proxy |
True |
Is Managed |
True |
Ordering |
[] |
Permissions |
[] |
Default Permissions |
(‘add’, ‘change’, ‘delete’, ‘view’) |
Indexes |
[] |
Constraints |
[] |
Database Table |
users |
Base Manager |
None |
Default Manager |
None |
File |
/data/olympia/src/olympia/activity/models.py |
Starting Line Number |
71 |
Method Resolution Order |
(<class ‘olympia.activity.models.GenericMozillaUser’>, <class ‘olympia.users.models.UserProfile’>, <class ‘olympia.amo.models.OnChangeMixin’>, <class ‘olympia.amo.models.ModelBase’>, <class ‘olympia.amo.models.SaveUpdateMixin’>, <class ‘django.contrib.auth.base_user.AbstractBaseUser’>, <class ‘django.db.models.base.Model’>, <class ‘django.db.models.utils.AltersData’>, <class ‘object’>) |
Fields
Field Name |
Field Type |
Database Column |
Database Type |
Verbose Name |
---|---|---|---|---|
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToManyRel |
through addons.AddonUser |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
OneToOneRel |
integer |
||
|
PositiveIntegerField |
auth_id |
integer UNSIGNED |
auth id |
|
FloatField |
averagerating |
double precision |
averagerating |
|
DateTimeField |
banned |
datetime(6) |
banned |
|
CharField |
basket_token |
varchar(128) |
basket token |
|
CharField |
biography |
varchar(255) |
biography |
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
BooleanField |
bypass_upload_restrictions |
bool |
bypass upload restrictions |
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
OneToOneRel |
integer |
||
|
DateTimeField |
created |
datetime(6) |
created |
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
BooleanField |
deleted |
bool |
deleted |
|
BooleanField |
display_collections |
bool |
display collections |
|
CharField |
display_name |
varchar(50) |
display name |
|
ManyToOneRel |
integer |
||
|
EmailField |
varchar(75) |
||
|
DateTimeField |
email_changed |
datetime(6) |
email changed |
|
ManyToOneRel |
integer |
||
|
ManyToManyRel |
through waffle.Flag_users |
||
|
CharField |
fxa_id |
varchar(128) |
fxa id |
|
ManyToManyRel |
through access.GroupUser |
||
|
ManyToOneRel |
integer |
||
|
BooleanField |
public |
bool |
has full profile |
|
ManyToOneRel |
integer |
||
|
URLField |
homepage |
varchar(255) |
homepage |
|
AutoField |
id |
integer AUTO_INCREMENT |
ID |
|
DateTimeField |
last_login |
datetime(6) |
last login |
|
CharField |
last_login_ip |
varchar(45) |
last login ip |
|
CharField |
location |
varchar(255) |
location |
|
ManyToOneRel |
integer |
||
|
DateTimeField |
modified |
datetime(6) |
modified |
|
TextField |
notes |
longtext |
notes |
|
ManyToOneRel |
integer |
||
|
CharField |
occupation |
varchar(255) |
occupation |
|
CharField |
password |
varchar(128) |
password |
|
CharField |
picture_type |
varchar(75) |
picture type |
|
ManyToOneRel |
integer |
||
|
DateTimeField |
read_dev_agreement |
datetime(6) |
read dev agreement |
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
ManyToOneRel |
integer |
||
|
CharField |
username |
varchar(255) |
username |
|
ManyToOneRel |
integer |
fields_reverse_relation=[FieldReverseRelation(name=’abuse_reported’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’abuse.AbuseReport’, field_name_on_related_model=’reporter’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’abuse_reports’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’abuse.AbuseReport’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’decisions_made_by’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’abuse.ContentDecision’, field_name_on_related_model=’reviewer_user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’decisions_on’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’abuse.ContentDecision’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’groups’, field_type=’ManyToManyRel’, field_db_type=’through access.GroupUser’, related_model=’access.Group’, field_name_on_related_model=’users’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’access.GroupUser’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’activity_log_tokens’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.ActivityLogToken’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.DraftComment’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.ActivityLog’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addons’, field_type=’ManyToManyRel’, field_db_type=’through addons.AddonUser’, related_model=’addons.Addon’, field_name_on_related_model=’authors’, field_type_on_related_model=’FilterableManyToManyField’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’addons.AddonUser’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’addons.AddonUserPendingConfirmation’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’api_keys’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’api.APIKey’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’OneToOneRel’, field_db_type=’integer’, related_model=’api.APIKeyConfirmation’, field_name_on_related_model=’user’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’collections’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’bandwagon.Collection’, field_name_on_related_model=’author’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’bandwagon.CollectionAddon’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’blocklist.Block’, field_name_on_related_model=’updated_by’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’blocklist.BlocklistSubmission’, field_name_on_related_model=’updated_by’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’blocklist.BlocklistSubmission’, field_name_on_related_model=’signoff_by’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’devhub.RssKey’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’surveyresponse’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’devhub.SurveyResponse’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’files.FileUpload’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’_ratings_all’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’ratings.Rating’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’ratings.RatingFlag’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’reviewers.ReviewerSubscription’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’notifications’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’users.UserNotification’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’restriction_history’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’users.UserRestrictionHistory’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’history’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’users.UserHistory’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’content_disabled_on_ban’, field_type=’OneToOneRel’, field_db_type=’integer’, related_model=’users.BannedUserContent’, field_name_on_related_model=’user’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’versions.VersionReviewerFlags’, field_name_on_related_model=’pending_rejection_by’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’Flag_users+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’waffle.Flag_users’, field_name_on_related_model=’userprofile’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToManyRel’, field_db_type=’through waffle.Flag_users’, related_model=’waffle.Flag’, field_name_on_related_model=’users’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’genericmozillauser_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’admin.LogEntry’, field_name_on_related_model=’user’, field_type_on_related_model=’ForeignKey’)]
Reverse Relations
Field Name |
Field Type |
Database Type |
Related Model |
Field Name on Related Model |
Field Type on Related Model |
---|---|---|---|---|---|
|
ManyToOneRel |
integer |
blocklist.BlocklistSubmission |
signoff_by |
ForeignKey |
|
ManyToOneRel |
integer |
waffle.Flag_users |
userprofile |
ForeignKey |
|
ManyToOneRel |
integer |
ratings.Rating |
user |
ForeignKey |
|
ManyToOneRel |
integer |
abuse.AbuseReport |
reporter |
ForeignKey |
|
ManyToOneRel |
integer |
abuse.AbuseReport |
user |
ForeignKey |
|
ManyToOneRel |
integer |
activity.ActivityLogToken |
user |
ForeignKey |
|
ManyToManyRel |
through addons.AddonUser |
addons.Addon |
authors |
FilterableManyToManyField |
|
ManyToOneRel |
integer |
api.APIKey |
user |
ForeignKey |
|
ManyToOneRel |
integer |
bandwagon.Collection |
author |
ForeignKey |
|
OneToOneRel |
integer |
users.BannedUserContent |
user |
OneToOneField |
|
ManyToOneRel |
integer |
abuse.ContentDecision |
reviewer_user |
ForeignKey |
|
ManyToOneRel |
integer |
abuse.ContentDecision |
user |
ForeignKey |
|
ManyToOneRel |
integer |
access.GroupUser |
user |
ForeignKey |
|
ManyToOneRel |
integer |
activity.DraftComment |
user |
ForeignKey |
|
ManyToOneRel |
integer |
activity.ActivityLog |
user |
ForeignKey |
|
ManyToOneRel |
integer |
addons.AddonUser |
user |
ForeignKey |
|
ManyToOneRel |
integer |
addons.AddonUserPendingConfirmation |
user |
ForeignKey |
|
OneToOneRel |
integer |
api.APIKeyConfirmation |
user |
OneToOneField |
|
ManyToOneRel |
integer |
bandwagon.CollectionAddon |
user |
ForeignKey |
|
ManyToOneRel |
integer |
blocklist.Block |
updated_by |
ForeignKey |
|
ManyToOneRel |
integer |
blocklist.BlocklistSubmission |
updated_by |
ForeignKey |
|
ManyToOneRel |
integer |
devhub.RssKey |
user |
ForeignKey |
|
ManyToOneRel |
integer |
files.FileUpload |
user |
ForeignKey |
|
ManyToOneRel |
integer |
ratings.RatingFlag |
user |
ForeignKey |
|
ManyToOneRel |
integer |
reviewers.ReviewerSubscription |
user |
ForeignKey |
|
ManyToOneRel |
integer |
versions.VersionReviewerFlags |
pending_rejection_by |
ForeignKey |
|
ManyToManyRel |
through waffle.Flag_users |
waffle.Flag |
users |
ManyToManyField |
|
ManyToOneRel |
integer |
admin.LogEntry |
user |
ForeignKey |
|
ManyToManyRel |
through access.GroupUser |
access.Group |
users |
ManyToManyField |
|
ManyToOneRel |
integer |
users.UserHistory |
user |
ForeignKey |
|
ManyToOneRel |
integer |
users.UserNotification |
user |
ForeignKey |
|
ManyToOneRel |
integer |
users.UserRestrictionHistory |
user |
ForeignKey |
|
ManyToOneRel |
integer |
devhub.SurveyResponse |
user |
ForeignKey |
Methods
Other Methods
Method Name |
Signature |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Private Methods
Method Name |
Signature |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Custom Managers
default
Class: UserManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
create_superuser(self, username, email, fxa_id=None)
Creates and saves a superuser.
create_user(self, email, fxa_id=None, **kwargs)
get_by_natural_key(self, username)
make_random_password(self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789')
Generate a random password with the given length and given allowed_chars. The default value of allowed_chars does not have “I” or “O” or letters and digits that look similar – just to avoid confusion.
transform(self, fn)
Custom QuerySet
Class: UserQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
get_with_primary_fallback(self, *args, **kwargs)
*Like get(), but if using a non-default database and DoesNotExist is raised, another attempt is made using the default database instead.
Intended to be used in places where replication lag could cause the object not to exist for a brief moment and forcing use of primary db at all times is undesirable.*
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
objects
Class: UserManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
ban_and_disable_related_content(self)
create_superuser(self, username, email, fxa_id=None)
Creates and saves a superuser.
create_user(self, email, fxa_id=None, **kwargs)
get_by_natural_key(self, username)
make_random_password(self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789')
Generate a random password with the given length and given allowed_chars. The default value of allowed_chars does not have “I” or “O” or letters and digits that look similar – just to avoid confusion.
transform(self, fn)
unban_and_reenable_related_content(self)
Custom QuerySet
Class: UserQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
ban_and_disable_related_content(self, *, skip_activity_log=False)
*Admin method to ban multiple users and disable the content they produced.
Similar to deletion, except that the content produced by the user is forcibly soft-disabled instead of being deleted where possible, and the user is not anonymized: we keep their data until hard-deletion kicks in (see clear_old_user_data), including fxa_id and email so that they are never able to log back in.*
get_with_primary_fallback(self, *args, **kwargs)
*Like get(), but if using a non-default database and DoesNotExist is raised, another attempt is made using the default database instead.
Intended to be used in places where replication lag could cause the object not to exist for a brief moment and forcing use of primary db at all times is undesirable.*
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
unban_and_reenable_related_content(self, *, skip_activity_log=False)
Admin method to unban users and restore their content that was disabled when they were banned.
!!! THIS DOCUMENT WAS AUTOGENERATED ON 2025-10-07 !!!