| 532 | |
| 533 | |
| 534 | class AnonymousUser: |
| 535 | id = None |
| 536 | pk = None |
| 537 | username = "" |
| 538 | is_staff = False |
| 539 | is_active = False |
| 540 | is_superuser = False |
| 541 | _groups = EmptyManager(Group) |
| 542 | _user_permissions = EmptyManager(Permission) |
| 543 | |
| 544 | def __str__(self): |
| 545 | return "AnonymousUser" |
| 546 | |
| 547 | def __eq__(self, other): |
| 548 | return isinstance(other, self.__class__) |
| 549 | |
| 550 | def __hash__(self): |
| 551 | return 1 # instances always return the same hash value |
| 552 | |
| 553 | def __int__(self): |
| 554 | raise TypeError( |
| 555 | "Cannot cast AnonymousUser to int. Are you trying to use it in place of " |
| 556 | "User?" |
| 557 | ) |
| 558 | |
| 559 | def save(self): |
| 560 | raise NotImplementedError( |
| 561 | "Django doesn't provide a DB representation for AnonymousUser." |
| 562 | ) |
| 563 | |
| 564 | def delete(self): |
| 565 | raise NotImplementedError( |
| 566 | "Django doesn't provide a DB representation for AnonymousUser." |
| 567 | ) |
| 568 | |
| 569 | def set_password(self, raw_password): |
| 570 | raise NotImplementedError( |
| 571 | "Django doesn't provide a DB representation for AnonymousUser." |
| 572 | ) |
| 573 | |
| 574 | def check_password(self, raw_password): |
| 575 | raise NotImplementedError( |
| 576 | "Django doesn't provide a DB representation for AnonymousUser." |
| 577 | ) |
| 578 | |
| 579 | @property |
| 580 | def groups(self): |
| 581 | return self._groups |
| 582 | |
| 583 | @property |
| 584 | def user_permissions(self): |
| 585 | return self._user_permissions |
| 586 | |
| 587 | def get_user_permissions(self, obj=None): |
| 588 | return _user_get_permissions(self, obj, "user") |
| 589 | |
| 590 | async def aget_user_permissions(self, obj=None): |
| 591 | return await _auser_get_permissions(self, obj, "user") |