28 lines
980 B
Python
28 lines
980 B
Python
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['err'] = 'err' in self.request.GET
|
|
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):
|
|
if self.request.POST['password'] != self.request.POST['repeat']:
|
|
return '/profile?err=true'
|
|
self.request.user.set_password(self.request.POST['password'])
|
|
self.request.user.save()
|
|
login(self.request, self.request.user)
|
|
return self
|