def _doPut(self, dataObject): if "name" in dataObject or "email" in dataObject or "photo" in dataObject: try: UM = UserMapper() if self.arg.isdigit(): # Get the user by ID user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) if user is not None: if self.user.getId() is user.getId() or self.user.accessLevel("super_user"): if "name" in dataObject: user.setName(dataObject["name"]) if "email" in dataObject: user.setEmail(dataObject["email"]) if "photo" in dataObject: user.setPhoto(dataObject["photo"]) UserMapper.update(user) return self._response(user.dict(), CODE.CREATED) else: raise Forbidden() else: raise NotFound("This user does not exist") except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s)" % e.args[1])
def _doPost(self, dataObject): if "email" in dataObject and "password" in dataObject: username = dataObject['email'] password = dataObject['password'] try: umapper = UserMapper() selectedUser = umapper.getUserByEmail(username) except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s: %s)" % e.args[0], e.args[1]) # check we have a result if selectedUser is None: raise NotFound("We have no record of a user with the username %s" % username) # check password is correct return corresponding key if not checkHash(password, selectedUser.getPassword()): raise Unauthorised("Failed to login with that username and password") # get API token from the database and return it try: rdata = {} ATM_ = ApitokenMapper() rdata["apitoken"] = ATM_.findTokenByUserId(selectedUser.getId()).getToken() rdata["user"] = selectedUser.dict(1) return self._response(rdata, CODE.CREATED) except mdb.DatabaseError, e: raise ServerError("Unable to get API key from the database (%s: %s)" % e.args[0], e.args[1])
def _doPost(self, dataObject): if "email" in dataObject and "password" in dataObject: UM = UserMapper() ATM = ApitokenMapper() # Build user and token objects user = User() if not checkEmail(dataObject["email"]): raise BadRequest("The e-mail supplied was invalid.") user.setEmail(dataObject["email"]) user.setPreHash(dataObject["password"]) user.setRegistered(True) token = Apitoken() token.setUser(user) token.setToken(getKey()) # Save changes to user try: UM.insert(user) # handle the possibility the user already exists except mdb.IntegrityError, e: raise Conflict("A user with that e-mail address exists already.") # handle all other DB errors except mdb.DatabaseError, e: raise ServerError("Unable to create user in the database (%s)" % e.args[1])
def _doPost(self, dataObject): if "email" in dataObject and "password" in dataObject: UM = UserMapper() ATM = ApitokenMapper() # Build user and token objects user = User() if not checkEmail(dataObject["email"]): raise BadRequest("The e-mail supplied was invalid.") user.setEmail(dataObject["email"]) user.setPreHash(dataObject["password"]) user.setRegistered(True) token = Apitoken() token.setUser(user) token.setToken(getKey()) # Save changes to user try: UM.insert(user) # handle the possibility the user already exists except mdb.IntegrityError, e: raise Conflict( "A user with that e-mail address exists already.") # handle all other DB errors except mdb.DatabaseError, e: raise ServerError( "Unable to create user in the database (%s)" % e.args[1])
def main(): from Networking.protocolhandler import ProtocolHandler from Common.config import TopHatConfig #setup the config TopHatConfig(path="/home/specialk/Dev/tophat/config.py") from Model.Mapper.qrzargamemapper import QRzarGameMapper from Model.Mapper.usermapper import UserMapper # get UM = UserMapper() user = UM.find(1) GM = QRzarGameMapper() game = GM.find(1) # build from Model.depth import Depth import pprint dic = Depth.build(user, 3) pprint.pprint(dic) print "" print "***********************************************" print "" dic = Depth.build(game, 3) pprint.pprint(dic)
def _doDelete(self): if self.arg is None: raise MethodNotAllowed("You must provide the user ID or user EMAIL of the user to be deleted") # get the user if it exists try: UM = UserMapper() if self.arg.isdigit(): user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s: %s)" % e.args[0], e.args[1])
def _doGet(self): try: UM = UserMapper() if self.arg is not None: if self.arg.isdigit(): # Get the user by ID user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) if user is None: raise NotFound("This user does not exist") if self.user.accessLevel( "super_user") or self.user.getId() == user.getId(): return self._response(user.dict(2), CODE.OK) else: raise Forbidden() else: if self.user.accessLevel("super_user"): offset = 0 users = UM.findAll(offset, offset + 50) userslist = [] for user in users: userslist.append(user.dict(2)) userslist = { "users": userslist, "pagination_offset": offset, "max_perpage": 50 } return self._response(userslist, CODE.OK) else: raise Forbidden() except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s: %s)" % (e.args[0], e.args[1]))
def main(): from Common.config import TopHatConfig # setup the config kwargs = {"path": "/home/specialk/Dev/tophat/config.py"} TopHatConfig(**kwargs) # do the other stuff from Model.Mapper.qrzargamemapper import QRzarGameMapper from Model.Mapper.usermapper import UserMapper from Model.Mapper.killmapper import KillMapper from Model.Mapper.qrzarplayermapper import QRzarPlayerMapper from Model.Mapper.apitokenmapper import ApitokenMapper from Model.Mapper.objectwatcher import ObjectWatcher # Get All the current Users from the database UM = UserMapper() users = UM.findAll() for usr in users: print usr GM = QRzarGameMapper() games = GM.findAll() for game_ in games: print game_ KM = KillMapper() kills = KM.findAll() for kill_ in kills: print kill_ PM = QRzarPlayerMapper() players = PM.findAll() for player_ in players: print player_ ATM = ApitokenMapper() tokens = ATM.findAll() for token in tokens: print token usr1 = UM.find(1)
def main(): from Common.config import TopHatConfig #setup the config kwargs = {"path":"/home/specialk/Dev/tophat/config.py"} TopHatConfig(**kwargs) # do the other stuff from Model.Mapper.gamemapper import GameMapper from Model.Mapper.usermapper import UserMapper from Model.Mapper.killmapper import KillMapper from Model.Mapper.playermapper import PlayerMapper from Model.Mapper.apitokenmapper import ApitokenMapper from Model.Mapper.objectwatcher import ObjectWatcher # Get All the current Users from the database UM = UserMapper() users = UM.findAll() for usr in users: print usr KM = KillMapper() kills = KM.findAll() for kill_ in kills: print kill_ PM = PlayerMapper() players = PM.findAll() for player_ in players: print player_ GM = GameMapper() games = GM.findAll() for game_ in games: print game_ ATM = ApitokenMapper() tokens = ATM.findAll() for token in tokens: print token usr1 = UM.find(1)
def _doDelete(self): if self.arg is None: raise MethodNotAllowed( "You must provide the user ID or user EMAIL of the user to be deleted" ) # get the user if it exists try: UM = UserMapper() if self.arg.isdigit(): user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) except mdb.DatabaseError, e: raise ServerError( "Unable to search the user database (%s: %s)" % e.args[0], e.args[1])
def _doGet(self): try: UM = UserMapper() if self.arg is not None: if self.arg.isdigit(): # Get the user by ID user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) if user is None: raise NotFound("This user does not exist") if self.user.accessLevel("super_user") or self.user.getId() == user.getId(): return self._response(user.dict(2), CODE.OK) else: raise Forbidden() else: if self.user.accessLevel("super_user"): offset = 0 users = UM.findAll(offset, offset + 50) userslist = [] for user in users: userslist.append(user.dict(2)) userslist = {"users": userslist, "pagination_offset": offset, "max_perpage": 50} return self._response(userslist, CODE.OK) else: raise Forbidden() except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s: %s)" % (e.args[0], e.args[1]))
def _doPut(self, dataObject): if "name" in dataObject or "email" in dataObject or "photo" in dataObject: try: UM = UserMapper() if self.arg.isdigit(): # Get the user by ID user = UM.find(self.arg) else: # Get the user by E-mail user = UM.getUserByEmail(self.arg) if user is not None: if self.user.getId() is user.getId( ) or self.user.accessLevel("super_user"): if "name" in dataObject: user.setName(dataObject["name"]) if "email" in dataObject: user.setEmail(dataObject["email"]) if "photo" in dataObject: user.setPhoto(dataObject["photo"]) UserMapper.update(user) return self._response(user.dict(), CODE.CREATED) else: raise Forbidden() else: raise NotFound("This user does not exist") except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s)" % e.args[1])
except mdb.DatabaseError, e: raise ServerError("Unable to get API key from the database (%s: %s)" % e.args[0], e.args[1]) else: # Anonymous login rdata = {} token = Apitoken() token.setToken(getKey()) blank = User() blank.setToken(token) token.setUser(blank) umapper = UserMapper() ATM = ApitokenMapper() blank.setRegistered(False) # Save changes to user try: umapper.insert(blank) # handle the possibility the user already exists except mdb.IntegrityError, e: raise Conflict(CODE.CONFLICT, "A unexpected conflict occurred when trying to create your anonymous login token.") # handle all other DB errors except mdb.DatabaseError, e: raise ServerError("Unable to create user in the database (%s)" % e.args[1])