~azzar1/unity/add-show-desktop-key

1099.1.41 by William Grant
Port www/apps/logout to new framework (in ivle.webapp.security).
1
# IVLE - Informatics Virtual Learning Environment
2
# Copyright (C) 2007-2009 The University of Melbourne
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18
# Author: William Grant
19
1099.1.161 by William Grant
Move ivle.dispatch.login.get_user_details() to ivle.webapp.security.
20
import ivle.database
1099.1.72 by Nick Chadwick
Dispatch now generates an index for each plugin type, allowing plugins to
21
from ivle.webapp.base.plugins import ViewPlugin
1099.1.120 by William Grant
Move the login machinery to the new framework.
22
from ivle.webapp.security.views import LoginView, LogoutView
1294.2.62 by William Grant
Security (login/logout) done.
23
from ivle.webapp import ApplicationRoot
1099.1.41 by William Grant
Port www/apps/logout to new framework (in ivle.webapp.security).
24
1099.1.161 by William Grant
Move ivle.dispatch.login.get_user_details() to ivle.webapp.security.
25
def get_user_details(req):
26
    """Gets the name of the logged in user, without presenting a login box
27
    or attempting to authenticate.
28
    Returns None if there is no user logged in.
29
    """
30
    session = req.get_session()
31
32
    # Check the session to see if someone is logged in. If so, go with it.
33
    try:
34
        login = session['login']
35
    except KeyError:
36
        return None
37
1130 by William Grant
Unlock the session everywhere as soon as we are done with it, and add a warning
38
    session.unlock()
39
1099.1.161 by William Grant
Move ivle.dispatch.login.get_user_details() to ivle.webapp.security.
40
    # Get the full User object from the db associated with this login
41
    return ivle.database.User.get_by_login(req.store, login)
42
1099.1.72 by Nick Chadwick
Dispatch now generates an index for each plugin type, allowing plugins to
43
class Plugin(ViewPlugin):
1099.1.41 by William Grant
Port www/apps/logout to new framework (in ivle.webapp.security).
44
    """
45
    The Plugin class for the security plugin.
46
    """
1294.2.62 by William Grant
Security (login/logout) done.
47
    views = [(ApplicationRoot, '+login', LoginView),
48
             (ApplicationRoot, '+logout', LogoutView),
49
             ]