events: rename token_view to secret_view
This commit is contained in:
		| @ -1,9 +1,12 @@ | |||||||
| """Tokens API Viewset""" | """Tokens API Viewset""" | ||||||
|  | from django.db.models.base import Model | ||||||
| from django.http.response import Http404 | from django.http.response import Http404 | ||||||
|  | from drf_yasg2.utils import swagger_auto_schema | ||||||
| from rest_framework.decorators import action | from rest_framework.decorators import action | ||||||
|  | from rest_framework.fields import CharField | ||||||
| from rest_framework.request import Request | from rest_framework.request import Request | ||||||
| from rest_framework.response import Response | from rest_framework.response import Response | ||||||
| from rest_framework.serializers import ModelSerializer | from rest_framework.serializers import ModelSerializer, Serializer | ||||||
| from rest_framework.viewsets import ModelViewSet | from rest_framework.viewsets import ModelViewSet | ||||||
|  |  | ||||||
| from authentik.core.models import Token | from authentik.core.models import Token | ||||||
| @ -19,6 +22,18 @@ class TokenSerializer(ModelSerializer): | |||||||
|         fields = ["pk", "identifier", "intent", "user", "description"] |         fields = ["pk", "identifier", "intent", "user", "description"] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class TokenViewSerializer(Serializer): | ||||||
|  |     """Show token's current key""" | ||||||
|  |  | ||||||
|  |     key = CharField(read_only=True) | ||||||
|  |  | ||||||
|  |     def create(self, validated_data: dict) -> Model: | ||||||
|  |         raise NotImplementedError | ||||||
|  |  | ||||||
|  |     def update(self, instance: Model, validated_data: dict) -> Model: | ||||||
|  |         raise NotImplementedError | ||||||
|  |  | ||||||
|  |  | ||||||
| class TokenViewSet(ModelViewSet): | class TokenViewSet(ModelViewSet): | ||||||
|     """Token Viewset""" |     """Token Viewset""" | ||||||
|  |  | ||||||
| @ -26,6 +41,7 @@ class TokenViewSet(ModelViewSet): | |||||||
|     queryset = Token.filter_not_expired() |     queryset = Token.filter_not_expired() | ||||||
|     serializer_class = TokenSerializer |     serializer_class = TokenSerializer | ||||||
|  |  | ||||||
|  |     @swagger_auto_schema(responses={200: TokenViewSerializer(many=False)}) | ||||||
|     @action(detail=True) |     @action(detail=True) | ||||||
|     def view_key(self, request: Request, identifier: str) -> Response: |     def view_key(self, request: Request, identifier: str) -> Response: | ||||||
|         """Return token key and log access""" |         """Return token key and log access""" | ||||||
| @ -33,5 +49,5 @@ class TokenViewSet(ModelViewSet): | |||||||
|         if not tokens.exists(): |         if not tokens.exists(): | ||||||
|             raise Http404 |             raise Http404 | ||||||
|         token = tokens.first() |         token = tokens.first() | ||||||
|         Event.new(EventAction.TOKEN_VIEW, token=token).from_http(request) |         Event.new(EventAction.SECRET_VIEW, token=token).from_http(request) | ||||||
|         return Response({"key": token.key}) |         return Response(TokenViewSerializer({"key": token.key}).data) | ||||||
|  | |||||||
							
								
								
									
										57
									
								
								authentik/events/migrations/0013_auto_20210209_1657.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								authentik/events/migrations/0013_auto_20210209_1657.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | # Generated by Django 3.1.6 on 2021-02-09 16:57 | ||||||
|  | from django.apps.registry import Apps | ||||||
|  | from django.db import migrations, models | ||||||
|  | from django.db.backends.base.schema import BaseDatabaseSchemaEditor | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def token_view_to_secret_view(apps: Apps, schema_editor: BaseDatabaseSchemaEditor): | ||||||
|  |     from authentik.events.models import EventAction | ||||||
|  |  | ||||||
|  |     db_alias = schema_editor.connection.alias | ||||||
|  |     Event = apps.get_model("authentik_events", "Event") | ||||||
|  |  | ||||||
|  |     Event.objects.using(db_alias).filter(action="token_view").update( | ||||||
|  |         action=EventAction.SECRET_VIEW | ||||||
|  |     ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |  | ||||||
|  |     dependencies = [ | ||||||
|  |         ("authentik_events", "0012_auto_20210202_1821"), | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name="event", | ||||||
|  |             name="action", | ||||||
|  |             field=models.TextField( | ||||||
|  |                 choices=[ | ||||||
|  |                     ("login", "Login"), | ||||||
|  |                     ("login_failed", "Login Failed"), | ||||||
|  |                     ("logout", "Logout"), | ||||||
|  |                     ("user_write", "User Write"), | ||||||
|  |                     ("suspicious_request", "Suspicious Request"), | ||||||
|  |                     ("password_set", "Password Set"), | ||||||
|  |                     ("secret_view", "Secret View"), | ||||||
|  |                     ("invitation_used", "Invite Used"), | ||||||
|  |                     ("authorize_application", "Authorize Application"), | ||||||
|  |                     ("source_linked", "Source Linked"), | ||||||
|  |                     ("impersonation_started", "Impersonation Started"), | ||||||
|  |                     ("impersonation_ended", "Impersonation Ended"), | ||||||
|  |                     ("policy_execution", "Policy Execution"), | ||||||
|  |                     ("policy_exception", "Policy Exception"), | ||||||
|  |                     ("property_mapping_exception", "Property Mapping Exception"), | ||||||
|  |                     ("system_task_execution", "System Task Execution"), | ||||||
|  |                     ("system_task_exception", "System Task Exception"), | ||||||
|  |                     ("configuration_error", "Configuration Error"), | ||||||
|  |                     ("model_created", "Model Created"), | ||||||
|  |                     ("model_updated", "Model Updated"), | ||||||
|  |                     ("model_deleted", "Model Deleted"), | ||||||
|  |                     ("update_available", "Update Available"), | ||||||
|  |                     ("custom_", "Custom Prefix"), | ||||||
|  |                 ] | ||||||
|  |             ), | ||||||
|  |         ), | ||||||
|  |         migrations.RunPython(token_view_to_secret_view), | ||||||
|  |     ] | ||||||
| @ -42,7 +42,7 @@ class EventAction(models.TextChoices): | |||||||
|     SUSPICIOUS_REQUEST = "suspicious_request" |     SUSPICIOUS_REQUEST = "suspicious_request" | ||||||
|     PASSWORD_SET = "password_set"  # noqa # nosec |     PASSWORD_SET = "password_set"  # noqa # nosec | ||||||
|  |  | ||||||
|     TOKEN_VIEW = "token_view"  # nosec |     SECRET_VIEW = "secret_view"  # noqa # nosec | ||||||
|  |  | ||||||
|     INVITE_USED = "invitation_used" |     INVITE_USED = "invitation_used" | ||||||
|  |  | ||||||
|  | |||||||
| @ -0,0 +1,46 @@ | |||||||
|  | # Generated by Django 3.1.6 on 2021-02-09 16:57 | ||||||
|  |  | ||||||
|  | from django.db import migrations, models | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |  | ||||||
|  |     dependencies = [ | ||||||
|  |         ("authentik_policies_event_matcher", "0006_auto_20210203_1134"), | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name="eventmatcherpolicy", | ||||||
|  |             name="action", | ||||||
|  |             field=models.TextField( | ||||||
|  |                 blank=True, | ||||||
|  |                 choices=[ | ||||||
|  |                     ("login", "Login"), | ||||||
|  |                     ("login_failed", "Login Failed"), | ||||||
|  |                     ("logout", "Logout"), | ||||||
|  |                     ("user_write", "User Write"), | ||||||
|  |                     ("suspicious_request", "Suspicious Request"), | ||||||
|  |                     ("password_set", "Password Set"), | ||||||
|  |                     ("secret_view", "Secret View"), | ||||||
|  |                     ("invitation_used", "Invite Used"), | ||||||
|  |                     ("authorize_application", "Authorize Application"), | ||||||
|  |                     ("source_linked", "Source Linked"), | ||||||
|  |                     ("impersonation_started", "Impersonation Started"), | ||||||
|  |                     ("impersonation_ended", "Impersonation Ended"), | ||||||
|  |                     ("policy_execution", "Policy Execution"), | ||||||
|  |                     ("policy_exception", "Policy Exception"), | ||||||
|  |                     ("property_mapping_exception", "Property Mapping Exception"), | ||||||
|  |                     ("system_task_execution", "System Task Execution"), | ||||||
|  |                     ("system_task_exception", "System Task Exception"), | ||||||
|  |                     ("configuration_error", "Configuration Error"), | ||||||
|  |                     ("model_created", "Model Created"), | ||||||
|  |                     ("model_updated", "Model Updated"), | ||||||
|  |                     ("model_deleted", "Model Deleted"), | ||||||
|  |                     ("update_available", "Update Available"), | ||||||
|  |                     ("custom_", "Custom Prefix"), | ||||||
|  |                 ], | ||||||
|  |                 help_text="Match created events with this action type. When left empty, all action types will be matched.", | ||||||
|  |             ), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										17
									
								
								swagger.yaml
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								swagger.yaml
									
									
									
									
									
								
							| @ -565,9 +565,9 @@ paths: | |||||||
|       parameters: [] |       parameters: [] | ||||||
|       responses: |       responses: | ||||||
|         '200': |         '200': | ||||||
|           description: '' |           description: Show token's current key | ||||||
|           schema: |           schema: | ||||||
|             $ref: '#/definitions/Token' |             $ref: '#/definitions/TokenView' | ||||||
|       tags: |       tags: | ||||||
|         - core |         - core | ||||||
|     parameters: |     parameters: | ||||||
| @ -7713,6 +7713,15 @@ definitions: | |||||||
|       description: |       description: | ||||||
|         title: Description |         title: Description | ||||||
|         type: string |         type: string | ||||||
|  |   TokenView: | ||||||
|  |     description: Show token's current key | ||||||
|  |     type: object | ||||||
|  |     properties: | ||||||
|  |       key: | ||||||
|  |         title: Key | ||||||
|  |         type: string | ||||||
|  |         readOnly: true | ||||||
|  |         minLength: 1 | ||||||
|   User: |   User: | ||||||
|     description: User Serializer |     description: User Serializer | ||||||
|     required: |     required: | ||||||
| @ -7801,7 +7810,7 @@ definitions: | |||||||
|           - user_write |           - user_write | ||||||
|           - suspicious_request |           - suspicious_request | ||||||
|           - password_set |           - password_set | ||||||
|           - token_view |           - secret_view | ||||||
|           - invitation_used |           - invitation_used | ||||||
|           - authorize_application |           - authorize_application | ||||||
|           - source_linked |           - source_linked | ||||||
| @ -8572,7 +8581,7 @@ definitions: | |||||||
|           - user_write |           - user_write | ||||||
|           - suspicious_request |           - suspicious_request | ||||||
|           - password_set |           - password_set | ||||||
|           - token_view |           - secret_view | ||||||
|           - invitation_used |           - invitation_used | ||||||
|           - authorize_application |           - authorize_application | ||||||
|           - source_linked |           - source_linked | ||||||
|  | |||||||
| @ -89,7 +89,7 @@ export class EventInfo extends LitElement { | |||||||
|             return html` |             return html` | ||||||
|                 <h3>${gettext(`Attempted to log in as ${this.event.context.username}`)}</h3> |                 <h3>${gettext(`Attempted to log in as ${this.event.context.username}`)}</h3> | ||||||
|                 <ak-expand>${this.defaultResponse()}</ak-expand>`; |                 <ak-expand>${this.defaultResponse()}</ak-expand>`; | ||||||
|         case "token_view": |         case "secret_view": | ||||||
|             return html` |             return html` | ||||||
|                 <h3>${gettext("Token:")}</h3> |                 <h3>${gettext("Token:")}</h3> | ||||||
|                 ${this.getModelInfo(this.event.context.token as EventContext)}`; |                 ${this.getModelInfo(this.event.context.token as EventContext)}`; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer