From: Loïc Collignon Date: Mon, 31 Jul 2017 09:26:33 +0000 (+0200) Subject: added some events to the API, like failure. X-Git-Tag: 4.99.5~41 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=0de5dda373fc97aabbcab78f5c2abf02c7bd36d2;p=apps%2Fagl-service-data-persistence.git added some events to the API, like failure. Change-Id: Ib102a729ab5666906edf19f24c04662a5c26fdba Signed-off-by: Loïc Collignon --- diff --git a/ll-auth-binding/htdocs/IdentityBinding.js b/ll-auth-binding/htdocs/IdentityBinding.js index 5f9ea24..4d0d98f 100644 --- a/ll-auth-binding/htdocs/IdentityBinding.js +++ b/ll-auth-binding/htdocs/IdentityBinding.js @@ -53,8 +53,24 @@ } function gotevent(obj) { - console.log("gotevent:" + JSON.stringify(obj)); - document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj); + console.log("gotevent:" + JSON.stringify(obj)); + document.getElementById("outevt").innerHTML = (evtidx++) +": "+JSON.stringify(obj); + + document.getElementById("message").innerHTML = ""; + + if (obj.event == "ll-auth/login") { + document.getElementById("userid").innerHTML = obj.data.user; + document.getElementById("device").innerHTML = obj.data.device; + } + + if (obj.event == "ll-auth/logout") { + document.getElementById("userid").innerHTML = ""; + document.getElementById("device").innerHTML = ""; + } + + if (obj.event == "ll-auth/failed") { + document.getElementById("message").innerHTML = obj.data.message; + } } function send(message) { diff --git a/ll-auth-binding/htdocs/auth.html b/ll-auth-binding/htdocs/auth.html index 6e0da89..ac48ff9 100644 --- a/ll-auth-binding/htdocs/auth.html +++ b/ll-auth-binding/htdocs/auth.html @@ -17,12 +17,22 @@

  • +
    +
    +

    User:

    +
      +
    1. id:
    2. +
    3. device:
    4. +
    +
    +
    - \ No newline at end of file + diff --git a/ll-auth-binding/htdocs/index.html b/ll-auth-binding/htdocs/index.html index 5eb0401..1c90ae5 100644 --- a/ll-auth-binding/htdocs/index.html +++ b/ll-auth-binding/htdocs/index.html @@ -6,6 +6,7 @@

    Identity Binding tests

    1. Auth
    2. +
    3. Auth2
    diff --git a/ll-auth-binding/src/ll-auth-binding.c b/ll-auth-binding/src/ll-auth-binding.c index e85d63a..78e9733 100644 --- a/ll-auth-binding/src/ll-auth-binding.c +++ b/ll-auth-binding/src/ll-auth-binding.c @@ -13,7 +13,7 @@ static struct pam_conv conv = { misc_conv, NULL }; static char* current_device = NULL; static char* current_user = NULL; -afb_event evt_login, evt_logout; +afb_event evt_login, evt_logout, evt_failed; /// @brief API's verb 'login'. Try to login a user using a device /// @param[in] req The request object. Should contains a json with a "device" key. @@ -28,6 +28,7 @@ static void verb_login(struct afb_req req) { AFB_ERROR("[login] the current user must be logged out first!"); afb_req_fail(req, "current user must be logged out first!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"A user is already logged in!\"}")); return; } @@ -36,6 +37,7 @@ static void verb_login(struct afb_req req) { AFB_ERROR("[login] device must be provided!"); afb_req_fail(req, "device must be provided!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"device must be provided!\"}")); return; } @@ -45,6 +47,7 @@ static void verb_login(struct afb_req req) { AFB_ERROR("PAM start failed!"); afb_req_fail(req, "PAM start failed!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"PAM start failed!\"}")); return; } @@ -56,6 +59,7 @@ static void verb_login(struct afb_req req) AFB_ERROR("PAM putenv failed!"); afb_req_fail(req, "PAM putenv failed!", NULL); pam_end(pamh, r); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"PAM putenv failed!\"}")); return; } @@ -64,6 +68,7 @@ static void verb_login(struct afb_req req) AFB_ERROR("PAM authenticate failed!"); afb_req_fail(req, "PAM authenticate failed!", NULL); pam_end(pamh, r); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"PAM authenticate failed!\"}")); return; } @@ -72,6 +77,7 @@ static void verb_login(struct afb_req req) AFB_ERROR("PAM acct_mgmt failed!"); afb_req_fail(req, "PAM acct_mgmt failed!", NULL); pam_end(pamh, r); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"PAM acct_mgmt failed!\"}")); return; } @@ -81,6 +87,7 @@ static void verb_login(struct afb_req req) { AFB_ERROR("[login] No user provided by the PAM module!"); afb_req_fail(req, "No user provided by the PAM module!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"No user provided by the PAM module!\"}")); return; } @@ -91,6 +98,7 @@ static void verb_login(struct afb_req req) { AFB_ERROR("PAM end failed!"); afb_req_fail(req, "PAM end failed!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"PAM end failed!\"}")); return; } @@ -114,6 +122,7 @@ static void verb_logout(struct afb_req req) { AFB_INFO("[logout] device must be provided!"); afb_req_fail(req, "device must be provided!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"Device must be provided!\"}")); return; } @@ -135,12 +144,14 @@ static void verb_logout(struct afb_req req) { AFB_INFO("No user was linked to this device!"); afb_req_fail(req, "No user was linked to this device!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"No user was linked to this device!\"}")); return; } } AFB_INFO("The unplugged device wasn't the user key!"); afb_req_fail(req, "The unplugged device wasn't the user key!", NULL); + afb_event_broadcast(evt_failed, json_tokener_parse("{\"message\":\"The unplugged device wasn't the user key!\"}")); } static void verb_getuser(struct afb_req req) @@ -164,6 +175,7 @@ int ll_auth_init() current_device = NULL; evt_login = afb_daemon_make_event("login"); evt_logout = afb_daemon_make_event("logout"); + evt_failed = afb_daemon_make_event("failed"); if (afb_event_is_valid(evt_login) && afb_event_is_valid(evt_logout)) return 0;