X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=authosm%2Fbackend.py;h=6c23e91cb0230b07dbe1418ab67593ffe65690d4;hb=99f922f1dc8623a444930a621ce3696802d619c0;hp=4bf9e729cca7182f097c22490e5ea34df377508a;hpb=480be48e0f8582486e2e55b79a6075039f79da8e;p=osm%2FLW-UI.git diff --git a/authosm/backend.py b/authosm/backend.py index 4bf9e72..6c23e91 100644 --- a/authosm/backend.py +++ b/authosm/backend.py @@ -13,8 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from django.core.exceptions import PermissionDenied + from .models import OsmUser from lib.osm.osmclient.clientv2 import Client +from .exceptions import OSMAuthException class OsmBackend(object): @@ -26,27 +29,31 @@ class OsmBackend(object): if all(k in kwargs for k in ('username', 'password', 'project_id')): username = kwargs['username'] password = kwargs['password'] - project_id = kwargs['project_id'] client = Client() result = client.auth(kwargs) - print "######" - print result - if 'error' in result and result['error'] == True: - return None + if 'error' in result and result['error'] is True: + raise OSMAuthException(result['data']) else: try: user = OsmUser.objects.get(username=username) + user.psw = password + user.token=result['data']['id'] + user.project_id=result['data']['project_id'] + user.token_expires=result['data']['expires'] + user.session = result['data'] + user.save() except OsmUser.DoesNotExist: - # Create a new user. There's no need to set a password - # we will keep just some preferences - user = OsmUser(username=username) - + user = OsmUser(username=username, psw=password, token=result['data']['id'], + project_id=result['data']['project_id'], + token_expires=result['data']['expires']) + user.session = result['data'] user.save() - user.session = result['data'] + + return user return None