Skip to content

Commit

Permalink
Basic implementation to store token into graphdb, see pdonorio/restan…
Browse files Browse the repository at this point in the history
  • Loading branch information
Mattia D'Antonio committed Jun 7, 2016
1 parent b96d974 commit 4d25298
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 8 deletions.
16 changes: 9 additions & 7 deletions commons/models/neo4j.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@

from __future__ import absolute_import

from neomodel import StringProperty, \
StructuredNode, RelationshipTo, RelationshipFrom, OneOrMore
from neomodel import StructuredNode, StringProperty, DateTimeProperty, \
RelationshipTo, RelationshipFrom, \
OneOrMore, ZeroOrMore, One

import logging

Expand All @@ -23,16 +24,17 @@ class User(StructuredNode):
surname = StringProperty()
# TO BE USED INSIDE THE OVERIDED CLASS
#########################################
# tokens = RelationshipTo('Tokens', 'EMITTED', cardinality=OneOrMore)
tokens = RelationshipTo('Token', 'EMITTED', cardinality=ZeroOrMore)
roles = RelationshipTo('Role', 'ROLE', cardinality=OneOrMore)
externals = RelationshipTo(
'ExternalAccounts', 'OAUTH', cardinality=OneOrMore)


# class Tokens(StructuredNode):
# token = StringProperty(required=True)
# ttl = StringProperty()
# emitted_from = RelationshipFrom(User, 'EMITTED', cardinality=OneOrMore)
class Token(StructuredNode):
token = StringProperty(required=True, unique_index=True)
creation = DateTimeProperty(required=True)
ttl = StringProperty()
emitted_for = RelationshipFrom('User', 'EMITTED', cardinality=One)


class Role(StructuredNode):
Expand Down
2 changes: 2 additions & 0 deletions restapi/resources/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ def post(self):
# 'access_token': '9tiAF8Wozt0ACd-Aum3IKoAKuFlYt4A7ajZBTDyaoYk',
# 'token_type': 'Bearer'
# }
user = None
auth.save_token(user, token)

return self.response({'token': token})

Expand Down
5 changes: 4 additions & 1 deletion restapi/resources/services/authentication/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from __future__ import absolute_import
from .... import myself, lic, get_logger

from ....auth import auth
from confs.config import USER, PWD, ROLE_ADMIN, ROLE_USER

import abc
Expand Down Expand Up @@ -96,6 +95,7 @@ def parse_token(self, token):
return payload

def verify_token(self, token):
return False
# print("TOKEN", token)
self._payload = payload = self.parse_token(token)
# print("TOKEN CONTENT", payload)
Expand All @@ -108,6 +108,9 @@ def verify_token(self, token):

return False

def save_token(self, user, token):
logger.debug("Token is not saved in base authentication")

@abc.abstractmethod
def init_users_and_roles(self):
"""
Expand Down
12 changes: 12 additions & 0 deletions restapi/resources/services/authentication/graphdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,15 @@ def init_users_and_roles(self):
for role in self.DEFAULT_ROLES:
role_obj = self._graph.Role.nodes.get(name=role)
user.roles.connect(role_obj)

def save_token(self, user, token):

logger.critical("Save token: " + token)
token_node = self._graph.Token()
token_node.token = token
token_node.creation = datetime.now()
# token_node.ttl = ???
token_node.save()
# token.emitted_for.connect(user)

logger.debug("Token stored in graphDB")

0 comments on commit 4d25298

Please sign in to comment.