summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2004-03-03 21:07:27 +0000
committerAlexey Shchepin <alexey@process-one.net>2004-03-03 21:07:27 +0000
commit0f95685c051e475ddb75bcd05d5e6272930e1931 (patch)
tree620eaba3085f108f9d000d3145bd659b8ec7a7fa /src
parent* src/web/: Small HTTP server and admin web-interface to ejabberd (diff)
* src/web/: Minor update
SVN Revision: 207
Diffstat (limited to 'src')
-rw-r--r--src/web/ejabberd_http.erl4
-rw-r--r--src/web/ejabberd_web.erl22
2 files changed, 20 insertions, 6 deletions
diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl
index cbae8b3b..8735bffa 100644
--- a/src/web/ejabberd_http.erl
+++ b/src/web/ejabberd_http.erl
@@ -102,7 +102,7 @@ process_request(#state{request_method = 'GET',
LQuery = parse_urlencoded(Query),
?INFO_MSG("path: ~p, query: ~p~n", [NPath, LQuery]),
LPath = string:tokens(NPath, "/"),
- case ejabberd_web:process_get(User, LPath, LQuery) of
+ case ejabberd_web:process_get(User, LPath, LQuery, "") of
El when element(1, El) == xmlelement ->
make_xhtml_output(200, [], El);
{Status, Headers, El} ->
@@ -141,7 +141,7 @@ process_request(#state{request_method = 'POST',
LPath = string:tokens(NPath, "/"),
LQuery = parse_urlencoded(Data),
?INFO_MSG("client query: ~p~n", [LQuery]),
- case ejabberd_web:process_get(User, LPath, LQuery) of
+ case ejabberd_web:process_get(User, LPath, LQuery, "") of
El when element(1, El) == xmlelement ->
make_xhtml_output(200, [], El);
{Status, Headers, El} ->
diff --git a/src/web/ejabberd_web.erl b/src/web/ejabberd_web.erl
index c8349439..1bda488b 100644
--- a/src/web/ejabberd_web.erl
+++ b/src/web/ejabberd_web.erl
@@ -12,7 +12,7 @@
%% External exports
-export([make_xhtml/1,
- process_get/3]).
+ process_get/4]).
-include("ejabberd.hrl").
-include("jlib.hrl").
@@ -43,7 +43,21 @@ make_xhtml(Els) ->
-define(P, ?X("p")).
-define(BR, ?X("br")).
-process_get(User, [], Query) ->
+
+process_get(User, ["config" | RPath], Query, Lang) ->
+ case acl:match_rule(configure, jlib:make_jid(User, ?MYNAME, "")) of
+ deny ->
+ {401, [], make_xhtml([?XC("h1", "Not Allowed")])};
+ allow ->
+ process_config(User, RPath, Query, Lang)
+ end;
+
+process_get(User, Path, Query, Lang) ->
+ {404, [], make_xhtml([?XC("h1", "Not found")])}.
+
+
+
+process_config(User, [], Query, Lang) ->
make_xhtml([?XC("h1", "ejabberd configuration"),
?XE("ul",
[?LI([?AC("acls/", "Access Control Lists")]),
@@ -53,7 +67,7 @@ process_get(User, [], Query) ->
])
]);
-process_get(User, ["acls"], Query) ->
+process_config(User, ["acls"], Query, Lang) ->
case acl:match_rule(configure, jlib:make_jid(User, ?MYNAME, "")) of
deny ->
{401, [], make_xhtml([?XC("h1", "Not Allowed")])};
@@ -97,7 +111,7 @@ process_get(User, ["acls"], Query) ->
])
end;
-process_get(User, Path, Query) ->
+process_config(User, Path, Query, Lang) ->
{404, [], make_xhtml([?XC("h1", "Not found")])}.