Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	main/views.py
This commit is contained in:
Andrew Smirnov 2021-03-04 20:56:02 +03:00
commit a393c31a13
No known key found for this signature in database
GPG Key ID: 0EFE318E5BB2A82A
2 changed files with 16 additions and 14 deletions

View File

@ -14,13 +14,9 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.views import LoginView
from django.contrib.auth import views as auth_views
from django.urls import path, include
from access_controller import settings
from access_controller.settings import DEBUG
from main.views import main_page, profile_page, CustomRegistrationView, work_page, work_hand_over, work_become_engineer, AdminPageView
from main.views import work_page, work_hand_over, work_become_engineer, AdminPageView
from main.views import main_page, profile_page, CustomRegistrationView, CustomLoginView

View File

@ -28,6 +28,13 @@ from access_controller.settings import ZENDESK_ROLES
from zenpy.lib.api_objects import User as ZenpyUser
content_type_temp = ContentType.objects.get_for_model(UserProfile)
permission_temp, created = Permission.objects.get_or_create(
codename='has_control_access',
content_type=content_type_temp,
)
class CustomRegistrationView(RegistrationView):
"""
Отображение и логика работы страницы регистрации пользователя
@ -75,13 +82,12 @@ class CustomRegistrationView(RegistrationView):
"""
Дает разрешение на просмотр страница администратора, если пользователь имеет роль admin
"""
content_type = ContentType.objects.get_for_model(UserProfile)
permission, created = Permission.objects.get_or_create(
codename='has_control_access',
content_type=content_type,
)
if user.userprofile.role == 'admin':
content_type = ContentType.objects.get_for_model(UserProfile)
permission = Permission.objects.get(
codename='has_control_access',
content_type=content_type,
)
user.user_permissions.add(permission)
def get_success_url(self, user: User = None) -> success_url:
@ -163,7 +169,7 @@ def main_page(request):
return render(request, 'pages/index.html')
class AdminPageView(FormView, LoginRequiredMixin, PermissionRequiredMixin):
class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin, FormView):
permission_required = 'main.has_control_access'
template_name = 'pages/adm_ruleset.html'
form_class = AdminPageUsers
@ -188,7 +194,7 @@ class AdminPageView(FormView, LoginRequiredMixin, PermissionRequiredMixin):
[make_light_agent(user) for user in users]
@staticmethod
def count_users(users: User) -> int:
def count_users(users) -> tuple: #.. todolist:: :this func counts users from all zendesk instead of just from a model:
"""
Функция подсчета количества сотрудников с ролями engineer и light_a
@ -203,7 +209,7 @@ class AdminPageView(FormView, LoginRequiredMixin, PermissionRequiredMixin):
light_agents += 1
return engineers, light_agents
def get_context_data(self, **kwargs) -> list:
def get_context_data(self, **kwargs) -> dict:
"""
Функция формирования контента страницы администратора (с проверкой прав доступа)
"""