Browse Source

Users who are members of a group PARTNER-ADMIN are now unable to access the cooperate page

TonyKurts 9 months ago
parent
commit
1607b7aa66

+ 17 - 15
SharixAdmin/templates/SharixAdmin/index.html

@@ -74,21 +74,23 @@
           </div>
         </a>
       </li>
-      <li class="nav-item">
-        <a href="{% url 'cooperate' %}" class="nav-link {% if current_page == "cooperate" %}active rounded{% endif %}">
-          <div class="link d-flex align-items-center">
-            <img
-              class="nav-img"
-              src="
-                {% if current_page == "cooperate" %}
-                  {% static 'SharixAdmin/img/menu/handshake_w.svg' %}
-                {% else %}
-                  {% static 'SharixAdmin/img/menu/handshake.svg' %}
-                {% endif %}">
-            <span class="menu-bar-label">Сотрудничество</span>
-          </div>
-        </a>
-      </li>
+      {% if not is_partner_admin %}
+        <li class="nav-item">
+          <a href="{% url 'cooperate' %}" class="nav-link {% if current_page == "cooperate" %}active rounded{% endif %}">
+            <div class="link d-flex align-items-center">
+              <img
+                class="nav-img"
+                src="
+                  {% if current_page == "cooperate" %}
+                    {% static 'SharixAdmin/img/menu/handshake_w.svg' %}
+                  {% else %}
+                    {% static 'SharixAdmin/img/menu/handshake.svg' %}
+                  {% endif %}">
+              <span class="menu-bar-label">Сотрудничество {{ is_partner_admin }}</span>
+            </div>
+          </a>
+        </li>
+      {% endif %}
       <li class="nav-item">
         <a href="{% url 'user_information' %}" class="nav-link {% if current_page == "none" %}active rounded{% endif %}">
           <div class="link d-flex align-items-center">

+ 4 - 0
SharixAdmin/urls.py

@@ -30,7 +30,11 @@ urlpatterns = [
     path('provider/', login_required(ProviderListView.as_view()), name='provider'),
     path('provider/change_status/', change_provider_status, name='provider/change_status'),
 
+    # Запрос на подключение к сервису
     path('cooperate/', login_required(CooperateView.as_view()), name="cooperate"),
+    
+    # Страница пользователя с группой PARTNER-ADMIN
+    
 
     path('service_tariff/', login_required(ServiceTariffListView.as_view()), name='service_tariff'),
     path('service_tariff/add/', login_required(ServiceTariffCreate.as_view()), name='service_tariff/add/'),

+ 8 - 1
SharixAdmin/views/cooperate.py

@@ -2,16 +2,21 @@ from datetime import datetime, timedelta
 
 from django.views.generic.edit import FormView
 from django.urls import reverse_lazy
+from django.contrib.auth.mixins import UserPassesTestMixin
 
 from SharixAdmin.forms import CompanyCreateForm
 from tickets.models import Ticket, TicketList
 
 
-class CooperateView(FormView):
+class CooperateView(UserPassesTestMixin, FormView):
     form_class = CompanyCreateForm
     template_name = "SharixAdmin/cooperate.html"
     success_url = reverse_lazy("cooperate")
 
+    # Проверяем не состояит ли текущий пользователь в группе PARTNER-ADMIN
+    def test_func(self):
+        return not self.request.user.groups.filter(name='PARTNER-ADMIN').exists()
+
     def form_valid(self, form):
         # Сохраняем форму, чтобы получить объект компании
         instance = form.save(commit=False)
@@ -32,6 +37,7 @@ class CooperateView(FormView):
             created_by=self.request.user,
             
             # FIXME: Возможно необходима автоматическая генерация содержимого в определенном формате
+            # FIXME: Возможно нужно автоматически создавать содержимое поля json
             note=f"""
             Пользователь {self.request.user} #{self.request.user.pk} отправил заявку на становление партнером сервиса:\n
             - Имя: {instance.legal_name}\n
@@ -48,6 +54,7 @@ class CooperateView(FormView):
         instance.save()
 
         # Создание тикета на утверждение прав пользователя
+        # FIXME: Возможно нужно автоматически создавать содержимое поля json
         Ticket.objects.create(
             title=f"Запрос прав на становление Партнером '{instance.legal_name}'",
             ticket_list=TicketList.objects.get(pk=2101),# METASERVICE-ADMIN: Активация партнеров (NEG_REQUEST)

+ 2 - 1
SharixAdmin/views/index.py

@@ -11,7 +11,8 @@ def index(request):
     context = {
         'title':_('Home/Balance'),
         'phone':convert_ph_num,
-        'current_page': 'index'
+        'current_page': 'index',
+        "is_partner_admin": request.user.groups.filter(name='PARTNER-ADMIN').exists()
     }
     
     return render(request, 'SharixAdmin/main.html', context)

+ 2 - 4
requirements.txt

@@ -35,7 +35,7 @@ MarkupSafe==2.1.2
 oauthlib==3.2.2
 packaging==23.0
 promise==2.3
-psycopg2-binary==2.9.5
+psycopg2-binary
 pycparser==2.21
 pydot==1.4.2
 PyJWT==2.6.0
@@ -44,8 +44,6 @@ python3-openid==3.2.0
 pytz==2022.7.1
 requests==2.28.2
 requests-oauthlib==1.3.1
-ruamel.yaml==0.17.21
-ruamel.yaml.clib==0.2.7
 six==1.16.0
 social-auth-app-django==4.0.0
 social-auth-core==4.3.0
@@ -57,4 +55,4 @@ urllib3==1.26.14
 webencodings==0.5.1
 xmpppy==0.7.1
 django-ckeditor
-pillow
+pillow