url(r'^settings/', AccountSettingsView.as_view(), name='settings'),
url(r'^authenticated/$', JiraAuthenticatedView.as_view(), name='authenticated'),
url(r'^login/$', JiraLoginView.as_view(), name='login'),
- url(r'^logout/$', JiraLogoutView.as_view(), name='logout')
+ url(r'^logout/$', JiraLogoutView.as_view(), name='logout'),
+ url(r'^users/$', UserListView.as_view(), name='users'),
]
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views.generic import RedirectView
+from django.views.generic import TemplateView
from django.views.generic import UpdateView
from jira import JIRA
from account.forms import AccountSettingsForm
from account.jira_util import SignatureMethod_RSA_SHA1
from account.models import UserProfile
-from pharos_dashboard import settings
+from django.conf import settings
consumer = oauth.Consumer(settings.OAUTH_CONSUMER_KEY, settings.OAUTH_CONSUMER_SECRET)
self.request.session['request_token'] = dict(urllib.parse.parse_qsl(content.decode()))
# Step 3. Redirect the user to the authentication URL.
url = settings.OAUTH_AUTHORIZE_URL + '?oauth_token=' + \
- self.request.session['request_token']['oauth_token']
+ self.request.session['request_token']['oauth_token'] + \
+ '&oauth_callback=' + settings.OAUTH_CALLBACK_URL
return url
login(self.request, user)
# redirect user to settings page to complete profile
return url
+
+class UserListView(TemplateView):
+ template_name = "account/user_list.html"
+
+ def get_context_data(self, **kwargs):
+ users = User.objects.all()
+ context = super(UserListView, self).get_context_data(**kwargs)
+ context.update({'title': "Dashboard Users", 'users': users})
+ return context
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
+from django.conf import settings
from django.conf.urls import url, include
+from django.conf.urls.static import static
from django.contrib import admin
urlpatterns = [
url(r'^', include('dashboard.urls', namespace='dashboard')),
url(r'^booking/', include('booking.urls', namespace='booking')),
- url(r'^account/', include('account.urls', namespace='account')),
+ url(r'^accounts/', include('account.urls', namespace='account')),
url(r'^admin/', admin.site.urls),
-]
\ No newline at end of file
+]
+
+if settings.DEBUG is True:
+ urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
\ No newline at end of file
--- /dev/null
+{% extends "dashboard/table.html" %}
+{% load staticfiles %}
+
+{% block table %}
+ <thead>
+ <tr>
+ <th>Username</th>
+ <th>Company</th>
+ <th>SSH Key</th>
+ <th>GPG Key</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for user in users %}
+ <tr>
+ <th>
+ {{ user.username }}
+ </th>
+ <th>
+ {{ user.userprofile.company }}
+ </th>
+ <th>
+ <a href={{ user.userprofile.ssh_public_key.url }}>Download</a>
+ </th>
+ <th>
+ <a href={{ user.userprofile.pgp_public_key.url }}>Download</a>
+ </th>
+ </tr>
+ {% endfor %}
+ </tbody>
+{% endblock table %}
+
+
+{% block tablejs %}
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $('#table').DataTable({
+ "order": [[0, "asc"]]
+ });
+ });
+ </script>
+{% endblock tablejs %}
\ No newline at end of file
class="fa fa-fw"></i>Resources
</a>
</li>
+ <li>
+ <a href="{% url 'account:users' %}"><i
+ class="fa fa-fw"></i>Users
+ </a>
+ </li>
</ul>
</div>
<!-- /.sidebar-collapse -->