| -rw-r--r-- | cgit.c | 3 | ||||
| -rw-r--r-- | cgitrc.5.txt | 5 | ||||
| -rw-r--r-- | filter.c | 2 | ||||
| -rw-r--r-- | filters/simple-authentication.lua | 7 | ||||
| -rw-r--r-- | ui-shared.c | 8 | ||||
| -rw-r--r-- | ui-shared.h | 1 |
6 files changed, 10 insertions, 16 deletions
@@ -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 @@ -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); |