diff --git a/.gitignore b/.gitignore
index 02d4596dd940394e66b9c59543e42c2508760450..1d40e0537e5f4894bc7867676e6bfd9227d0c563 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,5 +112,8 @@ environment.bat
 #PyCharm
 .idea/
 
+#VSCode
+.vscode/
+
 #media
 /media/*
\ No newline at end of file
diff --git a/src/account/serializers.py b/src/account/serializers.py
index ae7b5bafeef15c9dca8de074aecacc5a5f9eda5e..e057bbd7f5d7b81ef578a2ba960709ee2ec99419 100644
--- a/src/account/serializers.py
+++ b/src/account/serializers.py
@@ -1,6 +1,5 @@
 from rest_framework import serializers
 from account import models
-from common.middleware import CurrentUserMiddleware
 from common import email
 
 
@@ -45,10 +44,10 @@ class ProfileSerializer_User(serializers.ModelSerializer):
         return value
 
     def validate_role(self, value):
-        modifier_role = CurrentUserMiddleware.get_current_user_profile().role
+        modifier_role = self.context['request'].user.profile.role
         if value != modifier_role:
             raise serializers.ValidationError(
-                "You don't have permission change role")
+                "You don't have permission to change role")
         return value
 
     def validate_signed(self, value):
diff --git a/src/common/email.py b/src/common/email.py
index 804231fc0ecd560e15b84e9bc20fac63943c2c40..07816cf92fca5bb885f047034c533c7a79f3ac52 100644
--- a/src/common/email.py
+++ b/src/common/email.py
@@ -12,42 +12,47 @@ def read_email(name):
 
 
 def registration(user):
-    subject = "KszkĂŠpzĂŠs regisztrĂĄciĂł"
-    message = read_email('registration.txt')
-    message = str.format(message % {'name': user.get_full_name()})
-    send_mail(subject, message, sender_email, [user.email, ])
+    # subject = "KszkĂŠpzĂŠs regisztrĂĄciĂł"
+    # message = read_email('registration.txt')
+    # message = str.format(message % {'name': user.get_full_name()})
+    # send_mail(subject, message, sender_email, [user.email, ])
+    pass
 
 
 def admitted(user):
     subject = "JelentkezĂŠs eredmĂŠnye"
-    message = read_email('admitted.txt')
-    message = str.format(message % {'name': user.get_full_name()})
-    send_mail(subject, message, sender_email, [user.email, ])
+    # message = read_email('admitted.txt')
+    # message = str.format(message % {'name': user.get_full_name()})
+    # send_mail(subject, message, sender_email, [user.email, ])
+    pass
 
 
 def denied(user):
-    subject = "JelentkezĂŠs eredmĂŠnye"
-    message = read_email('denied.txt')
-    message = str.format(message % {'name': user.get_full_name()})
-    send_mail(subject, message, sender_email, [user.email, ])
+    # subject = "JelentkezĂŠs eredmĂŠnye"
+    # message = read_email('denied.txt')
+    # message = str.format(message % {'name': user.get_full_name()})
+    # send_mail(subject, message, sender_email, [user.email, ])
+    pass
 
 
 def new_homework(user, deadline):
-    deadline = deadline.strftime('%Y-%m-%d %H:%M')
-    subject = "Új házifeladat"
-    message = read_email('new_homework.txt')
-    message = str.format(
-        message % {'name': user.get_full_name(), 'link': link, 'deadline': deadline})
-    send_mail(subject, message, sender_email, [user.email, ])
+    # deadline = deadline.strftime('%Y-%m-%d %H:%M')
+    # subject = "Új házifeladat"
+    # message = read_email('new_homework.txt')
+    # message = str.format(
+    #     message % {'name': user.get_full_name(), 'link': link, 'deadline': deadline})
+    # send_mail(subject, message, sender_email, [user.email, ])
+    pass
 
 
 def homework_corrected(user, title, accepted):
-    subject = "HĂĄzifeladat eredmĂŠnye"
-    if accepted:
-        status = 'Elfogadva'
-    else:
-        status = 'HibĂĄs'
-    message = read_email('homework_corrected.txt')
-    message = str.format(message % {'name': user.get_full_name(
-    ), 'link': link, 'status': status, 'title': title})
-    send_mail(subject, message, sender_email, [user.email, ])
+    # subject = "HĂĄzifeladat eredmĂŠnye"
+    # if accepted:
+    #     status = 'Elfogadva'
+    # else:
+    #     status = 'HibĂĄs'
+    # message = read_email('homework_corrected.txt')
+    # message = str.format(message % {'name': user.get_full_name(
+    # ), 'link': link, 'status': status, 'title': title})
+    # send_mail(subject, message, sender_email, [user.email, ])
+    pass
\ No newline at end of file
diff --git a/src/document/migrations/0007_auto_20200204_1442.py b/src/document/migrations/0007_auto_20200204_1442.py
new file mode 100644
index 0000000000000000000000000000000000000000..ede8e1160ad33290df6ff389ce011708c447485e
--- /dev/null
+++ b/src/document/migrations/0007_auto_20200204_1442.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.2.4 on 2020-02-04 13:42
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('document', '0006_auto_20200203_0016'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='document',
+            name='uploaded_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='documents', to='account.Profile'),
+        ),
+    ]
diff --git a/src/document/models.py b/src/document/models.py
index 11eeb96fd9ab4990169d5e5b504e99175a9a6395..093434c91e2e82f277136f77bfee408269286501 100644
--- a/src/document/models.py
+++ b/src/document/models.py
@@ -7,8 +7,6 @@ from account.models import Profile
 from homework.models import Solution
 from common.validators import FileSizeValidator
 
-from common.middleware import CurrentUserMiddleware
-
 
 def document_file_name(instance, filename):
     return '/'.join([
@@ -24,7 +22,6 @@ class Document(models.Model):
         Profile,
         on_delete=models.DO_NOTHING,
         related_name='documents',
-        default=CurrentUserMiddleware.get_current_user_profile,
     )
     uploaded_at = models.DateTimeField(auto_now_add=True, editable=False)
     name = models.CharField(max_length=150, blank=True, default='')
diff --git a/src/document/serializers.py b/src/document/serializers.py
index 7e24e70b6bd9e05d0172056753f489b3dc18d23c..937ecac3ee2630ed9770e7b745174ae9a8663929 100644
--- a/src/document/serializers.py
+++ b/src/document/serializers.py
@@ -1,7 +1,6 @@
 from rest_framework import serializers
 from common.serializers import CurrentUserProfileDefault
 from . import models
-from common.middleware import CurrentUserMiddleware
 
 _max_count = 1
 
@@ -32,7 +31,7 @@ class DocumentSerializer(serializers.ModelSerializer):
         return obj.uploaded_by.full_name
 
     def validate_solution(self, value):
-        profile = CurrentUserMiddleware.get_current_user_profile()
+        profile = self.context['request'].user.profile
         if value not in profile.solution.all():
             raise serializers.ValidationError('You dont have permission!')
         count = models.Document.objects.filter(
diff --git a/src/document/views.py b/src/document/views.py
index 00f53216570810c84504625b4c1f2abdf2896f2d..1adb1187c5e12e8f7c29cee642a2e412d34fb366 100644
--- a/src/document/views.py
+++ b/src/document/views.py
@@ -36,3 +36,10 @@ class DocumentViewSet(viewsets.ModelViewSet):
         if solution_id is not None:
             return queryset.filter(solution=solution_id)
         return queryset
+    
+    def perform_create(self, serializer):
+        kwargs = {
+            'uploaded_by': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)
diff --git a/src/homework/migrations/0004_auto_20200204_1457.py b/src/homework/migrations/0004_auto_20200204_1457.py
new file mode 100644
index 0000000000000000000000000000000000000000..6090358865bc28d8cac2e21255058ef866e2942f
--- /dev/null
+++ b/src/homework/migrations/0004_auto_20200204_1457.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.4 on 2020-02-04 13:57
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0003_auto_20200202_1541'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='solution',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='solution', to='account.Profile'),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='tasks', to='account.Profile'),
+        ),
+    ]
diff --git a/src/homework/models.py b/src/homework/models.py
index 75fddd9ea4c46938f630924f05044217a3489429..be416b1182356e443c499faa0650b7e04bb8a7cd 100755
--- a/src/homework/models.py
+++ b/src/homework/models.py
@@ -1,5 +1,4 @@
 from django.db import models
-from common.middleware import CurrentUserMiddleware
 from account.models import Profile
 
 
@@ -8,7 +7,6 @@ class Task(models.Model):
         Profile,
         on_delete=models.DO_NOTHING,
         related_name='tasks',
-        default=CurrentUserMiddleware.get_current_user_profile,
     )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
@@ -28,7 +26,6 @@ class Solution(models.Model):
         Profile,
         related_name='solution',
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
diff --git a/src/homework/serializers.py b/src/homework/serializers.py
index 047752e0b783eef3104171572b2e963b96b051e4..e59ed06790824ae30bdaf891699df03960cdca68 100755
--- a/src/homework/serializers.py
+++ b/src/homework/serializers.py
@@ -3,7 +3,6 @@ from django.utils import timezone
 from account.models import Profile
 from . import models
 from common import email
-from common.middleware import CurrentUserMiddleware
 
 
 class TaskSerializer(serializers.ModelSerializer):
@@ -70,7 +69,7 @@ class SolutionSerializer_Student(serializers.ModelSerializer):
         return super().update(instance, validated_data)
 
     def create(self, validated_data):
-        profile = CurrentUserMiddleware.get_current_user_profile()
+        profile = self.context['request'].user.profile
         models.Solution.objects.filter(
             created_by=profile,
             task=validated_data['task']).delete()
@@ -114,7 +113,7 @@ class SolutionSerializer_Staff(serializers.ModelSerializer):
         return super().update(instance, validated_data)
 
     def create(self, validated_data):
-        profile = CurrentUserMiddleware.get_current_user_profile()
+        profile = self.context['request'].user.profile
         models.Solution.objects.filter(
             created_by=profile,
             task=validated_data['task']).delete()
diff --git a/src/homework/views.py b/src/homework/views.py
index fce43da9c8c315d38cbef91d700890bf8996e46a..b390abe11910b26ae2b0c9212123c9ca2d7263c1 100755
--- a/src/homework/views.py
+++ b/src/homework/views.py
@@ -33,3 +33,10 @@ class SolutionsViewSet(viewsets.ModelViewSet):
             if profile_id is not None:
                 queryset = queryset.filter(created_by=profile_id)
         return queryset
+    
+    def perform_create(self, serializer):
+        kwargs = {
+            'created_by': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)
diff --git a/src/mentors/migrations/0002_auto_20200204_1500.py b/src/mentors/migrations/0002_auto_20200204_1500.py
new file mode 100644
index 0000000000000000000000000000000000000000..2eb444486c10b76fa2e42399a6257887395054f3
--- /dev/null
+++ b/src/mentors/migrations/0002_auto_20200204_1500.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.2.4 on 2020-02-04 14:00
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('mentors', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='mentor',
+            name='mentor',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='mentor', to='account.Profile'),
+        ),
+    ]
diff --git a/src/mentors/models.py b/src/mentors/models.py
index 59b9a720ba88eb81223696f7d7ff982541889230..2d952636f4339c5b7eda7ff4c8cd5d96a3e3a0b8 100644
--- a/src/mentors/models.py
+++ b/src/mentors/models.py
@@ -1,6 +1,5 @@
 from django.db import models
 from account.models import Profile
-from common.middleware import CurrentUserMiddleware
 
 
 class Mentor(models.Model):
@@ -8,7 +7,6 @@ class Mentor(models.Model):
         Profile,
         related_name="mentor",
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
     name = models.CharField(null=False, max_length=200)
     text = models.TextField()
diff --git a/src/mentors/urls.py b/src/mentors/urls.py
index f83af8146a4078ca216ed2f398099b8478ec1932..027a533ba50729d7ac321e7c6a3068575a59e76c 100644
--- a/src/mentors/urls.py
+++ b/src/mentors/urls.py
@@ -3,6 +3,6 @@ from mentors import views
 
 
 router = routers.DefaultRouter()
-router.register(r'mentors', views.MentorssViewSet, base_name='mentors')
+router.register(r'mentors', views.MentorsViewSet, base_name='mentors')
 
 urlpatterns = router.urls
diff --git a/src/mentors/views.py b/src/mentors/views.py
index f294867543eee37da0eeb0a4e12eed2a1adf829e..28fdcc0bca19e2e4904b560ac9efa0e603689679 100644
--- a/src/mentors/views.py
+++ b/src/mentors/views.py
@@ -4,7 +4,14 @@ from mentors.models import Mentor
 from mentors.serializers import MentorSerializer
 
 
-class MentorssViewSet(viewsets.ModelViewSet):
+class MentorsViewSet(viewsets.ModelViewSet):
     serializer_class = MentorSerializer
     permission_classes = (IsStaffOrStudent,)
     queryset = Mentor.objects.all().order_by('name')
+
+    def perform_create(self, serializer):
+        kwargs = {
+            'mentor': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)
\ No newline at end of file
diff --git a/src/news/migrations/0003_auto_20200204_1510.py b/src/news/migrations/0003_auto_20200204_1510.py
new file mode 100644
index 0000000000000000000000000000000000000000..197ab856dab4ab25514574cef397b31a4e6bfdaa
--- /dev/null
+++ b/src/news/migrations/0003_auto_20200204_1510.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.4 on 2020-02-04 14:10
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('news', '0002_auto_20200202_1541'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='article',
+            name='author',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='author', to='account.Profile'),
+        ),
+        migrations.AlterField(
+            model_name='article',
+            name='updated_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='updater', to='account.Profile'),
+        ),
+    ]
diff --git a/src/news/models.py b/src/news/models.py
index d553d7175ba191cf73c075b83ea6f4ed0d631c1d..17837b5d6a2287cc7429c2a7fdb26a4b13e3589e 100644
--- a/src/news/models.py
+++ b/src/news/models.py
@@ -1,6 +1,5 @@
 from django.db import models
 from account.models import Profile
-from common.middleware import CurrentUserMiddleware
 
 
 class Article(models.Model):
@@ -8,7 +7,6 @@ class Article(models.Model):
         Profile,
         related_name="author",
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
     title = models.CharField(null=False, max_length=200)
     text = models.TextField()
@@ -18,7 +16,6 @@ class Article(models.Model):
         Profile,
         related_name="updater",
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
 
     def __str__(self):
diff --git a/src/news/views.py b/src/news/views.py
index 764d0a93c4aeb7f6ff4a493c6db4aed6f24a6c5c..87c9c7187c16c04d024f9fe3b621e033b32ea40a 100644
--- a/src/news/views.py
+++ b/src/news/views.py
@@ -8,3 +8,11 @@ class NewsViewSet(viewsets.ModelViewSet):
     serializer_class = ArticleSerializer
     permission_classes = (IsStaffOrReadOnly,)
     queryset = Article.objects.all().order_by('-created_at')
+
+    def perform_create(self, serializer):
+        kwargs = {
+            'author': self.request.user.profile,
+            'updated_by': self.request.user.profile,
+        }
+ 
+        serializer.save(**kwargs)
\ No newline at end of file
diff --git a/src/stats/migrations/0004_auto_20200204_1510.py b/src/stats/migrations/0004_auto_20200204_1510.py
new file mode 100644
index 0000000000000000000000000000000000000000..72e36a0128dd6695de5356eb8eb4e73384d66c1a
--- /dev/null
+++ b/src/stats/migrations/0004_auto_20200204_1510.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.2.4 on 2020-02-04 14:10
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0003_auto_20190122_1449'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='event',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='created_event', to='account.Profile'),
+        ),
+        migrations.AlterField(
+            model_name='note',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='created_notes', to='account.Profile'),
+        ),
+    ]
diff --git a/src/stats/models.py b/src/stats/models.py
index 762173fad5b281f05295dac8cb8b2268defe33c2..366c1d4b7aef6aa518521cdae18343b1a970983c 100644
--- a/src/stats/models.py
+++ b/src/stats/models.py
@@ -1,6 +1,5 @@
 from django.db import models
 from account.models import Profile
-from common.middleware import CurrentUserMiddleware
 
 
 class Event(models.Model):
@@ -21,7 +20,6 @@ class Event(models.Model):
         Profile,
         related_name='created_event',
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
@@ -40,7 +38,6 @@ class Note(models.Model):
         Profile,
         related_name='created_notes',
         on_delete=models.DO_NOTHING,
-        default=CurrentUserMiddleware.get_current_user_profile
     )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
diff --git a/src/stats/views.py b/src/stats/views.py
index c917e47dd8b96927fe4f1ec018975c84ed6656b5..6b022f2d23df404a1e81112006118023c26795f8 100644
--- a/src/stats/views.py
+++ b/src/stats/views.py
@@ -9,12 +9,26 @@ class StaffEventViewSet(viewsets.ModelViewSet):
     queryset = models.Event.objects.all().order_by('date')
     permission_classes = (IsStaffUser, )
 
+    def perform_create(self, serializer):
+        kwargs = {
+            'created_by': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)
+
 
 class StudentEventViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.StudentEventSerializer
     queryset = models.Event.objects.all().order_by('date')
     permission_classes = (IsStaffOrStudent, )
 
+    def perform_create(self, serializer):
+        kwargs = {
+            'created_by': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)
+
 
 class NoteViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.NoteSerializer
@@ -31,3 +45,10 @@ class NoteViewSet(viewsets.ModelViewSet):
         if event_id is not None:
             return queryset.filter(event=event_id)
         return queryset
+    
+    def perform_create(self, serializer):
+        kwargs = {
+            'created_by': self.request.user.profile
+        }
+ 
+        serializer.save(**kwargs)