X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FAuth.py;h=f62b5119d577765db8f6d381578e1256b0439ce9;hb=a74854dd38cb742b8fdc0d0cda7fff738a95312c;hp=f71b63480a015e460284c7529906b8c986df7853;hpb=a53ee9fc154268bdb4e7d014bba3bd0ac9477c9c;p=plcapi.git diff --git a/PLC/Auth.py b/PLC/Auth.py index f71b634..f62b511 100644 --- a/PLC/Auth.py +++ b/PLC/Auth.py @@ -4,7 +4,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: Auth.py,v 1.13 2007/01/30 23:09:55 mlhuang Exp $ +# $Id$ # import crypt @@ -16,6 +16,7 @@ from PLC.Faults import * from PLC.Parameter import Parameter, Mixed from PLC.Persons import Persons from PLC.Nodes import Node, Nodes +from PLC.NodeNetworks import NodeNetwork, NodeNetworks from PLC.Sessions import Session, Sessions from PLC.Peers import Peer, Peers from PLC.Boot import notify_owners @@ -92,7 +93,7 @@ class GPGAuth(Auth): for key in keys: try: from PLC.GPG import gpg_verify - gpg_verify(method.name, args, auth['signature'], key) + gpg_verify(args, key, auth['signature'], method.name) return except PLCAuthenticationFailure, fault: pass @@ -146,7 +147,7 @@ class SessionAuth(Auth): person = persons[0] if not set(person['roles']).intersection(method.roles): - raise PLCAuthenticationFailure, "Not allowed to call method" + raise PLCPermissionDenied, "Not allowed to call method" method.caller = persons[0] @@ -295,7 +296,7 @@ class PasswordAuth(Auth): assert auth.has_key('Username') # Get record (must be enabled) - persons = Persons(method.api, {'email': auth['Username'], 'enabled': True, 'peer_id': None}) + persons = Persons(method.api, {'email': auth['Username'].lower(), 'enabled': True, 'peer_id': None}) if len(persons) != 1: raise PLCAuthenticationFailure, "No such account" @@ -326,6 +327,6 @@ class PasswordAuth(Auth): raise PLCAuthenticationFailure, "Password verification failed" if not set(person['roles']).intersection(method.roles): - raise PLCAuthenticationFailure, "Not allowed to call method" + raise PLCAuthenticationFailure, "Not allowed to call method" method.caller = person