def get_handler_object(handlername): """ Return an event handler object based on the Name of the event handler class :param handlername: The identifier of the Handler Class :type hanldername: basestring :return: """ # TODO: beautify and make this work with several different handlers from privacyidea.lib.eventhandler.usernotification import \ UserNotificationEventHandler from privacyidea.lib.eventhandler.tokenhandler import TokenEventHandler from privacyidea.lib.eventhandler.scripthandler import ScriptEventHandler from privacyidea.lib.eventhandler.federationhandler import \ FederationEventHandler h_obj = None if handlername == "UserNotification": h_obj = UserNotificationEventHandler() if handlername == "Token": h_obj = TokenEventHandler() if handlername == "Script": h_obj = ScriptEventHandler() if handlername == "Federation": h_obj = FederationEventHandler() return h_obj
def test_01_set_tokenrealm(self): # setup realms self.setUp_user_realms() self.setUp_user_realm2() init_token({"serial": "SPASS01", "type": "spass"}) g = FakeFlaskG() audit_object = FakeAudit() audit_object.audit_data["serial"] = "SPASS01" g.logged_in_user = {"user": "******", "role": "admin", "realm": ""} g.audit_object = audit_object builder = EnvironBuilder(method='POST', data={'serial': "SPASS01"}, headers={}) env = builder.get_environ() # Set the remote address so that we can filter for it env["REMOTE_ADDR"] = "10.0.0.1" g.client_ip = env["REMOTE_ADDR"] req = Request(env) req.all_data = {"serial": "SPASS01", "type": "spass"} resp = Response() resp.data = """{"result": {"value": true}}""" # Now the initiailized token will be set in realm2 options = { "g": g, "request": req, "response": resp, "handler_def": { "options": { "realm": "realm2" } } } t_handler = TokenEventHandler() res = t_handler.do(ACTION_TYPE.SET_TOKENREALM, options=options) self.assertTrue(res) # Check if the token is contained in realm2 realms = get_realms_of_token("SPASS01") self.assertTrue("realm2" in realms) remove_token("SPASS01")
def test_04_unassign(self): # setup realms self.setUp_user_realms() init_token({ "serial": "SPASS01", "type": "spass" }, User("cornelius", self.realm1)) t = get_tokens(serial="SPASS01") uid = t[0].get_user_id() self.assertEqual(uid, "1000") g = FakeFlaskG() audit_object = FakeAudit() audit_object.audit_data["serial"] = "SPASS01" g.logged_in_user = {"user": "******", "role": "admin", "realm": ""} g.audit_object = audit_object builder = EnvironBuilder(method='POST', data={'serial': "SPASS01"}, headers={}) env = builder.get_environ() # Set the remote address so that we can filter for it env["REMOTE_ADDR"] = "10.0.0.1" g.client_ip = env["REMOTE_ADDR"] req = Request(env) req.all_data = {"serial": "SPASS01", "type": "spass"} resp = Response() resp.data = """{"result": {"value": true}}""" # Now the initiailized token will be set in realm2 options = {"g": g, "request": req, "response": resp, "handler_def": {}} t_handler = TokenEventHandler() res = t_handler.do(ACTION_TYPE.UNASSIGN, options=options) self.assertTrue(res) # Check if the token was unassigned t = get_tokens(serial="SPASS01") uid = t[0].get_user_id() self.assertEqual(uid, "") remove_token("SPASS01")
def test_03_enable_disable(self): # setup realms self.setUp_user_realms() init_token({"serial": "SPASS01", "type": "spass"}) g = FakeFlaskG() audit_object = FakeAudit() audit_object.audit_data["serial"] = "SPASS01" g.logged_in_user = {"user": "******", "role": "admin", "realm": ""} g.audit_object = audit_object builder = EnvironBuilder(method='POST', data={'serial': "SPASS01"}, headers={}) env = builder.get_environ() # Set the remote address so that we can filter for it env["REMOTE_ADDR"] = "10.0.0.1" g.client_ip = env["REMOTE_ADDR"] req = Request(env) req.all_data = {"serial": "SPASS01", "type": "spass"} resp = Response() resp.data = """{"result": {"value": true}}""" # Now the initiailized token will be set in realm2 options = {"g": g, "request": req, "response": resp, "handler_def": {}} t_handler = TokenEventHandler() res = t_handler.do(ACTION_TYPE.DISABLE, options=options) self.assertTrue(res) # Check if the token does not exist anymore t = get_tokens(serial="SPASS01") self.assertFalse(t[0].is_active()) res = t_handler.do(ACTION_TYPE.ENABLE, options=options) self.assertTrue(res) # Check if the token does not exist anymore t = get_tokens(serial="SPASS01") self.assertTrue(t[0].is_active()) remove_token("SPASS01")
def get_handler_object(handlername): """ Return an event handler object based on the Name of the event handler class :param handlername: The identifier of the Handler Class :type hanldername: basestring :return: """ # TODO: beautify and make this work with several different handlers from privacyidea.lib.eventhandler.usernotification import \ UserNotificationEventHandler from privacyidea.lib.eventhandler.tokenhandler import TokenEventHandler from privacyidea.lib.eventhandler.scripthandler import ScriptEventHandler from privacyidea.lib.eventhandler.federationhandler import \ FederationEventHandler from privacyidea.lib.eventhandler.counterhandler import CounterEventHandler from privacyidea.lib.eventhandler.requestmangler import RequestManglerEventHandler from privacyidea.lib.eventhandler.responsemangler import ResponseManglerEventHandler from privacyidea.lib.eventhandler.logginghandler import LoggingEventHandler from privacyidea.lib.eventhandler.customuserattributeshandler import CustomUserAttributesHandler h_obj = None if handlername == "UserNotification": h_obj = UserNotificationEventHandler() elif handlername == "Token": h_obj = TokenEventHandler() elif handlername == "Script": h_obj = ScriptEventHandler() elif handlername == "Federation": h_obj = FederationEventHandler() elif handlername == "Counter": h_obj = CounterEventHandler() elif handlername == "RequestMangler": h_obj = RequestManglerEventHandler() elif handlername == "ResponseMangler": h_obj = ResponseManglerEventHandler() elif handlername == "Logging": h_obj = LoggingEventHandler() elif handlername == "CustomUserAttributes": h_obj = CustomUserAttributesHandler() return h_obj