aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cgit.c3
-rw-r--r--cgitrc.5.txt5
-rw-r--r--filter.c2
-rw-r--r--filters/simple-authentication.lua7
-rw-r--r--ui-shared.c8
-rw-r--r--ui-shared.h1
6 files changed, 10 insertions, 16 deletions
diff --git a/cgit.c b/cgit.c
index 994957f..be1265d 100644
--- a/cgit.c
+++ b/cgit.c
@@ -611,8 +611,7 @@ static inline void open_auth_filter(struct cgit_context *ctx, const char *functi
ctx->env.https ? ctx->env.https : "",
ctx->qry.repo ? ctx->qry.repo : "",
ctx->qry.page ? ctx->qry.page : "",
- ctx->qry.url ? ctx->qry.url : "",
- cgit_loginurl());
+ ctx->qry.url ? ctx->qry.url : "");
}
/* We intentionally keep this rather small, instead of looping and
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 8eafc4a..682d8bb 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -645,7 +645,7 @@ source filter::
filtered contents is expected on standard output.
auth filter::
- The authentication filter receives 12 parameters:
+ The authentication filter receives 11 parameters:
- filter action, explained below, which specifies which action the
filter is called for
- http cookie
@@ -656,9 +656,8 @@ auth filter::
- cgit repo
- cgit page
- cgit url
- - cgit login url
When the filter action is "body", this filter must write to output the
- HTML for displaying the login form, which POSTs to the login url. When
+ HTML for displaying the login form, which POSTs to "/?p=login". When
the filter action is "authenticate-cookie", this filter must validate
the http cookie and return a 0 if it is invalid or 1 if it is invalid,
in the exit code / close function. If the filter action is
diff --git a/filter.c b/filter.c
index 5ee4e71..a5e5e4b 100644
--- a/filter.c
+++ b/filter.c
@@ -417,7 +417,7 @@ struct cgit_filter *cgit_new_filter(const char *cmd, filter_type filtertype)
switch (filtertype) {
case AUTH:
- argument_count = 12;
+ argument_count = 11;
break;
case EMAIL:
diff --git a/filters/simple-authentication.lua b/filters/simple-authentication.lua
index 9291302..5c4f074 100644
--- a/filters/simple-authentication.lua
+++ b/filters/simple-authentication.lua
@@ -122,7 +122,12 @@ function filter_open(...)
cgit["repo"] = select(9, ...)
cgit["page"] = select(10, ...)
cgit["url"] = select(11, ...)
- cgit["login"] = select(12, ...)
+
+ cgit["login"] = ""
+ for _ in cgit["url"]:gfind("/") do
+ cgit["login"] = cgit["login"] .. "../"
+ end
+ cgit["login"] = cgit["login"] .. "?p=login"
end
diff --git a/ui-shared.c b/ui-shared.c
index 0838e18..4f47c50 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -73,14 +73,6 @@ const char *cgit_rooturl()
return ctx.cfg.script_name;
}
-const char *cgit_loginurl()
-{
- static const char *login_url = 0;
- if (!login_url)
- login_url = fmtalloc("%s?p=login", cgit_rooturl());
- return login_url;
-}
-
char *cgit_repourl(const char *reponame)
{
if (ctx.cfg.virtual_root)
diff --git a/ui-shared.h b/ui-shared.h
index 889c28f..5987e77 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -4,7 +4,6 @@
extern const char *cgit_httpscheme();
extern const char *cgit_hosturl();
extern const char *cgit_rooturl();
-extern const char *cgit_loginurl();
extern char *cgit_repourl(const char *reponame);
extern char *cgit_fileurl(const char *reponame, const char *pagename,
const char *filename, const char *query);