initial
This commit is contained in:
6
web/views/__init__.py
Normal file
6
web/views/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from .welcome import WelcomeView
|
||||
from .projects import ProjectsView
|
||||
from .select_project import SelectProject
|
||||
from .profile import ProfileView
|
||||
from .profile_photo import ProfilePhoto
|
||||
from .logout import LogoutView
|
12
web/views/logout.py
Normal file
12
web/views/logout.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from django.contrib.auth import logout
|
||||
|
||||
from BaseLib.BaseView import BaseView
|
||||
|
||||
|
||||
class LogoutView(BaseView):
|
||||
required_login = True
|
||||
endpoint = 'logout'
|
||||
|
||||
def get(self):
|
||||
logout(self.request)
|
||||
return '/welcome'
|
24
web/views/profile.py
Normal file
24
web/views/profile.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from django.contrib.auth import login
|
||||
|
||||
from BaseLib.BaseView import BaseView
|
||||
from BaseLib.minio import minio_client
|
||||
|
||||
|
||||
class ProfileView(BaseView):
|
||||
required_login = True
|
||||
endpoint = 'profile'
|
||||
view_file = 'profile.html'
|
||||
|
||||
def get(self):
|
||||
self.context['owner'] = not hasattr(self, 'customUser') or self.customUser == self.request.user
|
||||
self.context['account'] = getattr(self, 'customUser', None) or self.request.user
|
||||
|
||||
def post_upload_photo(self):
|
||||
minio_client.put_object(self.request.FILES["file"].read(), f"profile_photos/{self.request.user.id}")
|
||||
return self
|
||||
|
||||
def post_change_password(self):
|
||||
self.request.user.set_password(self.request.POST['password'])
|
||||
self.request.user.save()
|
||||
login(self.request, self.request.user)
|
||||
return self
|
17
web/views/profile_photo.py
Normal file
17
web/views/profile_photo.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from django.http import HttpResponse
|
||||
|
||||
from BaseLib.BaseView import BaseView
|
||||
from BaseLib.minio import minio_client
|
||||
|
||||
|
||||
class ProfilePhoto(BaseView):
|
||||
required_login = True
|
||||
endpoint = "profile_photo"
|
||||
|
||||
def get(self):
|
||||
profile_photo_bytes = minio_client.get_object(f"profile_photos/{self.request.GET['id']}")
|
||||
if profile_photo_bytes == b"":
|
||||
profile_photo_bytes = open("content/empty_profile_photo.jpg", "rb").read()
|
||||
return HttpResponse(
|
||||
profile_photo_bytes, content_type="image/jpg"
|
||||
)
|
7
web/views/projects.py
Normal file
7
web/views/projects.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from BaseLib.BaseView import BaseView
|
||||
|
||||
|
||||
class ProjectsView(BaseView):
|
||||
required_login = True
|
||||
endpoint = ''
|
||||
view_file = 'projects.html'
|
11
web/views/select_project.py
Normal file
11
web/views/select_project.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from BaseLib.BaseView import BaseView
|
||||
|
||||
|
||||
class SelectProject(BaseView):
|
||||
required_login = True
|
||||
endpoint = 'select_project'
|
||||
|
||||
def get(self):
|
||||
self.request.user.selected_project = self.project
|
||||
self.request.user.save()
|
||||
return '/'
|
18
web/views/welcome.py
Normal file
18
web/views/welcome.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.contrib.auth import authenticate, login
|
||||
|
||||
from BaseLib.BaseView import BaseView
|
||||
|
||||
|
||||
class WelcomeView(BaseView):
|
||||
required_login = False
|
||||
endpoint = 'welcome'
|
||||
view_file = 'welcome.html'
|
||||
|
||||
def post(self):
|
||||
username = self.request.POST['username']
|
||||
password = self.request.POST['password']
|
||||
user = authenticate(username=username, password=password)
|
||||
if user is None:
|
||||
return self
|
||||
login(self.request, user)
|
||||
return '/'
|
Reference in New Issue
Block a user