示例#1
0
    def login(self, loginObject):
        try:
            output = LoginOutputObject()
            if not loginObject.deviceInput and not loginObject.deviceToken:
                return output
            person = LongTermPersonMemoryClient().loginCall(loginObject)
            if person:
                output.uniquename = person.uniquename
                output.details = person.details
                output.autorisations = person.autorisations
            if not person:
                return output

            if loginObject.deviceToken is not None:
                output.deviceToken = loginObject.deviceToken
                if ShortTermTokenMemoryClient().validateDeviceToken(
                        loginObject.deviceToken):
                    output.token = self.__get_request_token(
                        uniquename=person.uniquename,
                        deviceToken=loginObject.deviceToken)

            else:
                loginObject.deviceInput.person = person.uniquename
                deviceToken = ShortTermTokenMemoryClient().register_device(
                    loginObject.deviceInput)
                output.deviceToken = deviceToken
            return output
        except BadHashException as badHash:
            # ShortTermLogMemoryClient().log_thrift_exception(loginObject, badHash)
            raise badHash
        except LoginFailedException as fail:
            # ShortTermLogMemoryClient().log_thrift_exception(loginObject, fail)
            raise fail
示例#2
0
 def configureUser(self, userlist, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     LongTermPersonMemoryClient().configureUser(userlist=userlist)
     output = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#3
0
 def changeUser(self, field, person, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     LongTermPersonMemoryClient().changeUser(field=field, person=person)
     output = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#4
0
 def getUserList(self, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     output = UserListOutput()
     output.personList = LongTermPersonMemoryClient().getUserList()
     output.token = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#5
0
 def confirmDevice(self, deviceToken, active, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     ShortTermTokenMemoryClient().confirmDevice(devicetoken=deviceToken,
                                                active=active)
     output = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#6
0
 def getDeviceList(self, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     output = DeviceListOutput()
     output.deviceList = ShortTermTokenMemoryClient().getDeviceList()
     output.token = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#7
0
 def configureModuleSettings(self, uniquename, action, config, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     LongTermPersonMemoryClient().configureModuleSettings(
         uniquename=uniquename, action=action, config=config)
     output = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#8
0
 def configureUserModule(self, uniquename, autorisations, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     LongTermPersonMemoryClient().configureUserModule(
         uniquename=uniquename, autorisations=autorisations)
     output = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#9
0
 def getUser(self, uniquename, tokenInput):
     if not ShortTermTokenMemoryClient().validateToken(
             earPiAuthObject=tokenInput):
         raise LoginFailedException
     output = UserOutput()
     output.person = LongTermPersonMemoryClient().get_Person(
         input=uniquename)
     output.token = ShortTermTokenMemoryClient().getToken(
         earPiAuthObject=tokenInput)
     return output
示例#10
0
 def createNewPerson(self, person, tokenInput):
     try:
         if not ShortTermTokenMemoryClient().validateToken(
                 earPiAuthObject=tokenInput):
             raise LoginFailedException
         output = UserOutput()
         output.person = LongTermPersonMemoryClient().createNewPerson(
             person=person)
         output.token = ShortTermTokenMemoryClient().getToken(
             earPiAuthObject=tokenInput)
         return output
     except UniqueFailedException as unique:
         raise unique
示例#11
0
 def changePassword(self, username, password, tokenInput):
     try:
         if not ShortTermTokenMemoryClient().validateToken(
                 earPiAuthObject=tokenInput):
             raise LoginFailedException
         LongTermPersonMemoryClient().changePassword(username=username,
                                                     password=password)
         output = ShortTermTokenMemoryClient().getToken(
             earPiAuthObject=tokenInput)
         return output
     except BadHashException as badHash:
         # ShortTermLogMemoryClient().log_thrift_exception(loginObject, badHash)
         raise badHash
     except LoginFailedException as fail:
         # ShortTermLogMemoryClient().log_thrift_exception(loginObject, fail)
         raise fail
示例#12
0
 def __get_request_token(uniquename, deviceToken):
     eyeInput = EyePiInput()
     actions = dict()
     actions[ActionEnum.LOGIN] = pickle.dumps(obj=uniquename,
                                              protocol=None,
                                              fix_imports=False)
     eyeInput.action = actions
     eyeInput.person = uniquename
     eyeInput.deviceToken = deviceToken
     return ShortTermTokenMemoryClient().getToken(eyeInput)
示例#13
0
    def handleRequest(self, input):
        try:
            ShortTermLogMemoryClient().log_event(input, message='start eyepi')
            eyeOutput = EyePiOutput()
            tokenValide = True
            if input.token:
                tokenValide = ShortTermTokenMemoryClient().validateToken(
                    input.token, input.deviceToken)
                eyeOutput.ok = tokenValide
            if input.image and tokenValide:
                eyeOutput.ok = False
                eyeOutput.personCollection = []
                facePiOutput = FacePiThriftClient().handle_request(input.image)

                for face in facePiOutput:
                    name = face.person
                    person = LongTermPersonMemoryClient().get_Person(
                        input=name)
                    if person:
                        if person.enabled:
                            eyeOutput.personCollection.append(face)
                # eyeOutput.personCollection = facePiOutput

                if eyeOutput.personCollection:
                    eyeOutput.ok = True
            if eyeOutput.ok:
                eyeOutput.token = ShortTermTokenMemoryClient().getToken(input)
                eyeOutput.data = self.__make_generic_call(input.action)
            return eyeOutput
        except ThriftServiceException as tex:
            ShortTermLogMemoryClient().log_thrift_exception(input, tex)
            raise tex
        except ExternalEndpointUnavailable as endEx:
            ShortTermLogMemoryClient().log_thrift_endpoint_exception(
                input, endEx)
            raise endEx
        except Exception as ex:
            ShortTermLogMemoryClient().log_exception(input, ex)
            print('invalid request %s' % ex)
            raise ThriftServiceException('EyePi', 'invalid request %s' % ex)