add working oauth and ldap client
This commit is contained in:
2
passbook/admin/__init__.py
Normal file
2
passbook/admin/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
"""passbook admin"""
|
||||
default_app_config = 'passbook.admin.apps.PassbookAdminConfig'
|
9
passbook/admin/apps.py
Normal file
9
passbook/admin/apps.py
Normal file
@ -0,0 +1,9 @@
|
||||
"""passbook admin app config"""
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PassbookAdminConfig(AppConfig):
|
||||
"""passbook admin app config"""
|
||||
|
||||
name = 'passbook.admin'
|
||||
label = 'passbook_admin'
|
@ -0,0 +1,7 @@
|
||||
{% extends "administration/base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<form action="">
|
||||
{{ form }}
|
||||
</form>
|
||||
{% endblock %}
|
21
passbook/admin/templates/administration/base.html
Normal file
21
passbook/admin/templates/administration/base.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% extends "overview/base.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
{% load is_active %}
|
||||
|
||||
{% block nav_secondary %}
|
||||
<ul class="nav navbar-nav navbar-persistent">
|
||||
<li class="active">
|
||||
<a href="#">{% trans 'Overview' %}</a>
|
||||
</li>
|
||||
<li class="{% is_active 'applications'}">
|
||||
<a href="#">{% trans 'Applications' %}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">{% trans 'Rules' %}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">{% trans 'Users' %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
0
passbook/admin/templates/administration/form.html
Normal file
0
passbook/admin/templates/administration/form.html
Normal file
5
passbook/admin/templates/administration/list.html
Normal file
5
passbook/admin/templates/administration/list.html
Normal file
@ -0,0 +1,5 @@
|
||||
{% extends "administration/base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% endblock %}
|
42
passbook/admin/templates/administration/overview.html
Normal file
42
passbook/admin/templates/administration/overview.html
Normal file
@ -0,0 +1,42 @@
|
||||
{% extends "administration/base.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<div class="col-xs-6 col-sm-2 col-md-2">
|
||||
<div class="card-pf card-pf-accented card-pf-aggregate-status">
|
||||
<h2 class="card-pf-title">
|
||||
<a href="#"><span class="fa fa-shield"></span><span class="card-pf-aggregate-status-count"></span> {% trans 'Applications' %}</a>
|
||||
</h2>
|
||||
<div class="card-pf-body">
|
||||
<p class="card-pf-aggregate-status-notifications">
|
||||
<span class="card-pf-aggregate-status-notification"><a href="#"><span class="pficon pficon-ok"></span>{{ application_count }}</a></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-2 col-md-2">
|
||||
<div class="card-pf card-pf-accented card-pf-aggregate-status">
|
||||
<h2 class="card-pf-title">
|
||||
<a href="#"><span class="fa fa-shield"></span><span class="card-pf-aggregate-status-count"></span> {% trans 'Rules' %}</a>
|
||||
</h2>
|
||||
<div class="card-pf-body">
|
||||
<p class="card-pf-aggregate-status-notifications">
|
||||
<span class="card-pf-aggregate-status-notification"><a href="#"><span class="pficon pficon-ok"></span>{{ rule_count }}</a></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-2 col-md-2">
|
||||
<div class="card-pf card-pf-accented card-pf-aggregate-status">
|
||||
<h2 class="card-pf-title">
|
||||
<a href="#"><span class="fa fa-shield"></span><span class="card-pf-aggregate-status-count"></span> {% trans 'Users' %}</a>
|
||||
</h2>
|
||||
<div class="card-pf-body">
|
||||
<p class="card-pf-aggregate-status-notifications">
|
||||
<span class="card-pf-aggregate-status-notification"><a href="#"><span class="pficon pficon-ok"></span>{{ user_count }}</a></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
11
passbook/admin/urls.py
Normal file
11
passbook/admin/urls.py
Normal file
@ -0,0 +1,11 @@
|
||||
"""passbook URL Configuration"""
|
||||
from django.urls import path
|
||||
|
||||
from passbook.admin.views import applications, overview
|
||||
|
||||
urlpatterns = [
|
||||
path('', overview.AdministrationOverviewView.as_view(), name='admin-overview'),
|
||||
path('applications/', applications.ApplicationListView.as_view(), name='admin-applications'),
|
||||
path('applications/create/', applications.ApplicationCreateView.as_view(),
|
||||
name='admin-application-create'),
|
||||
]
|
0
passbook/admin/views/__init__.py
Normal file
0
passbook/admin/views/__init__.py
Normal file
16
passbook/admin/views/applications.py
Normal file
16
passbook/admin/views/applications.py
Normal file
@ -0,0 +1,16 @@
|
||||
"""passbook application administration"""
|
||||
|
||||
from django.views.generic import CreateView, DeleteView, ListView, UpdateView
|
||||
|
||||
from passbook.core.models import Application
|
||||
|
||||
|
||||
class ApplicationListView(ListView):
|
||||
model = Application
|
||||
template_name = 'administration/list.html'
|
||||
|
||||
class ApplicationCreateView(CreateView):
|
||||
|
||||
model = Application
|
||||
template_name = 'administration/application/create.html'
|
||||
fields = ['name', 'launch_url', 'icon_url']
|
15
passbook/admin/views/overview.py
Normal file
15
passbook/admin/views/overview.py
Normal file
@ -0,0 +1,15 @@
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from passbook.core.models import Application, Rule, User
|
||||
|
||||
|
||||
class AdministrationOverviewView(LoginRequiredMixin, TemplateView):
|
||||
|
||||
template_name = 'administration/overview.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs['application_count'] = len(Application.objects.all())
|
||||
kwargs['rule_count'] = len(Rule.objects.all())
|
||||
kwargs['user_count'] = len(User.objects.all())
|
||||
return super().get_context_data(**kwargs)
|
Reference in New Issue
Block a user