From 4a2709f52f88c96984620ed43ceb344f425b8924 Mon Sep 17 00:00:00 2001 From: Bouke Haarsma Date: Wed, 8 Jan 2014 21:33:50 +0100 Subject: [PATCH] More docs --- docs/_static/admin-view.png | Bin 0 -> 37291 bytes docs/_static/custom-view.png | Bin 0 -> 31673 bytes docs/conf.py | 3 +++ docs/index.rst | 3 ++- docs/reference.rst | 10 +++++++++ docs/usage.rst | 39 +++++++++++++++++++++++++++++++++++ user_sessions/views.py | 13 ++++++++++++ 7 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 docs/_static/admin-view.png create mode 100644 docs/_static/custom-view.png create mode 100644 docs/reference.rst create mode 100644 docs/usage.rst diff --git a/docs/_static/admin-view.png b/docs/_static/admin-view.png new file mode 100644 index 0000000000000000000000000000000000000000..70c9562638a9cf22366efab3492ae218dce8532f GIT binary patch literal 37291 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%0D^;@0*Fj1_#wTb2E+f|S?d_6x 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 OluI9Kq+PCQ74l!cbq|{W literal 0 HcmV?d00001 diff --git a/docs/_static/custom-view.png b/docs/_static/custom-view.png new file mode 100644 index 0000000000000000000000000000000000000000..726d5806e9fba6bbdcdc11f5dea87c9ee7b8eff1 GIT binary patch literal 31673 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 H>G}RYF&q78 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index c823b96..182ed5c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -268,3 +268,6 @@ # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False + +from django.conf import settings +settings.configure(DEBUG=False) \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index f68dd1b..30e7cf2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,7 +12,8 @@ Contents: :maxdepth: 2 installation - + usage + reference Indices and tables diff --git a/docs/reference.rst b/docs/reference.rst new file mode 100644 index 0000000..a70380e --- /dev/null +++ b/docs/reference.rst @@ -0,0 +1,10 @@ +Reference +========= + +.. autoclass:: user_sessions.views.SessionListView +.. autoclass:: user_sessions.views.SessionDeleteView + +Unit tests +---------- + +.. autoclass:: user_sessions.utils. \ No newline at end of file diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100644 index 0000000..298db62 --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,39 @@ +Usage +===== + +Current session +--------------- +The current session is available on the request, just like the normal session +middleware makes the session available:: + + def my_view(request): + request.session + + +All sessions +------------ +To get the list of a user's sessions:: + + sessions = user.session_set.filter(expire_date__gt=now()) + +You could logout the user everywhere:: + + user.session_set.all().delete() + +Generic views +------------- +There are two views included with this application, +:class:`~user_sessions.views.SessionListView` and +:class:`~user_sessions.views.SessionDeleteView`. Using this views you have a +simple, but effective, user session management that even looks great without +any additional styling: + +.. image:: _static/custom-view.png + +Admin views +----------- + +The user's IP address and user agent are also stored on the session. This +allows to show a list of active sessions to the user in the admin: + +.. image:: _static/admin-view.png diff --git a/user_sessions/views.py b/user_sessions/views.py index 8f222a3..3f098b5 100644 --- a/user_sessions/views.py +++ b/user_sessions/views.py @@ -19,11 +19,24 @@ def dispatch(self, request, *args, **kwargs): class SessionListView(LoginRequiredMixin, SessionMixin, ListView): + """ + View for listing a user's own sessions. + + This view shows list of a user's currently active sessions. You can + override the template by providing your own template at + `user_sessions/session_list.html`. + """ def get_context_data(self, **kwargs): kwargs['session_key'] = self.request.session.session_key return super(SessionListView, self).get_context_data(**kwargs) class SessionDeleteView(LoginRequiredMixin, SessionMixin, DeleteView): + """ + View for deleting a user's own session. + + This view allows a user to delete an active session. For example locking + out a session from a computer at the local library or a friend's place. + """ def get_success_url(self): return str(reverse_lazy('user_sessions:session_list'))