diff --git a/dudeswave_web/src/Makefile b/dudeswave_web/src/Makefile index 75e14ed..94f3c27 100644 --- a/dudeswave_web/src/Makefile +++ b/dudeswave_web/src/Makefile @@ -8,6 +8,7 @@ ERLFLAGS= -I ../../ OBJS= dudeswave_web.beam dudeswave_web_app.beam OBJS+= dudeswave_web_supervisor.beam dudeswave_web_handler.beam OBJS+= dudeswave_web_user_handler.beam dudeswave_web_common.beam +OBJS+= dudeswave_web_auth_handler.beam all: ${OBJS} diff --git a/dudeswave_web/src/dudeswave_web_auth_handler.erl b/dudeswave_web/src/dudeswave_web_auth_handler.erl index ed59839..16923cf 100644 --- a/dudeswave_web/src/dudeswave_web_auth_handler.erl +++ b/dudeswave_web/src/dudeswave_web_auth_handler.erl @@ -13,7 +13,7 @@ % ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF % OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. % --module(dudeswave_auth_handler). +-module(dudeswave_web_auth_handler). -moduledoc """ JSON API to authenticate users. @@ -94,9 +94,10 @@ forbidden(Req, State) -> <<"POST">> -> {false, Req, State}; _ -> - {User, Auth} = dudeswave_web_common:auth_cookies(Req), + {User, Cookie} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:auth(cookie, User, Cookie) of + case dudeswave_backend:auth(cookie, User, Host, Cookie) of {error, service_unavailable} -> exit(service_unavailable); true -> {false, Req, State}; false -> {true, Req, State} @@ -113,8 +114,9 @@ content_types_accepted(Req, State) -> resource_exists(Req, State) -> {User, _} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:user_details(User) of + case dudeswave_backend:user_details(User, Host) of [] -> {false, Req, State}; {error, Reason} -> @@ -136,8 +138,9 @@ allow_missing_post(Req, State) -> {false, Req, State}. delete_resource(Req, State) -> {User, Auth} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:logout(User, Auth) of + case dudeswave_backend:logout(User, Host, Auth) of ok -> {true, invalidate_cookies(Req), State}; {error, _} -> @@ -152,8 +155,9 @@ delete_completed(Req, State) -> {false, Req, State}. login(Req, State) -> {User, Pass, Req0} = read_login_data(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:auth(password, User, Pass) of + case dudeswave_backend:auth(password, User, Host, Pass) of {true, Cookie, Validity} -> {true, set_auth_cookies(Req, User, Cookie, Validity), State}; false -> diff --git a/dudeswave_web/src/dudeswave_web_user_handler.erl b/dudeswave_web/src/dudeswave_web_user_handler.erl index 77468a4..a060f77 100644 --- a/dudeswave_web/src/dudeswave_web_user_handler.erl +++ b/dudeswave_web/src/dudeswave_web_user_handler.erl @@ -139,8 +139,9 @@ forbidden(Req, State) -> {false, Req, State}; _ -> {User, Auth} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:auth(cookie, User, Auth) of + case dudeswave_backend:auth(cookie, User, Host, Auth) of {error, service_unavailable} -> {true, Req, State}; true -> {false, Req, State}; false -> {true, Req, State} @@ -169,8 +170,9 @@ content_types_accepted(Req, State) -> resource_exists(Req, State) -> {User, _} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:user_details(User) of + case dudeswave_backend:user_details(User, Host) of [] -> {false, Req, State}; {error, _} -> @@ -195,8 +197,9 @@ allow_missing_post(Req, State) -> {false, Req, State}. delete_resource(Req, State) -> {User, _} = dudeswave_web_common:auth_cookies(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:delete_user(User) of + case dudeswave_backend:delete_user(User, Host) of ok -> {true, Req, State}; {error, _} -> {false, Req, State} end. @@ -209,8 +212,9 @@ delete_completed(Req, State) -> {true, Req, State}. create_user(Req, State) -> {User, Pass, Email, Req0} = read_new_user_data(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:new_user(User, Pass, Email) of + case dudeswave_backend:new_user(User, Host, Pass, Email) of ok -> {true, Req0, []}; {error, _} -> {false, Req0, State} end. @@ -218,8 +222,9 @@ create_user(Req, State) -> modify_user(Req, State) -> {User, _} = dudeswave_web_common:auth_cookies(Req), {Email, Desc, Name, Req0} = read_update_user_data(Req), + Host = cowboy_req:host(Req), - case dudeswave_backend:update_user(User, Name, Email, Desc) of + case dudeswave_backend:update_user(User, Host, Name, Email, Desc) of ok -> {true, Req0, []}; {error, _} -> {false, Req0, State} end.