aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md11
-rw-r--r--interface/admin_files.tmpl4
-rw-r--r--interface/listing_default.tmpl58
3 files changed, 70 insertions, 3 deletions
diff --git a/README.md b/README.md
index 6fb8a53..f30d904 100644
--- a/README.md
+++ b/README.md
@@ -61,4 +61,13 @@ Other httpds may provide a similar mechanism, which will need to be called out t
## Authentication
-TBD
+This projects provides multiple methods to identify and authenticate users, including delegating authentication to external software.
+Implementing custom authentication methods is possible and patches contributing such are welcome.
+
+The following authentication methods are currently available:
+
+* *NoneAuth*: The default. Does not support any logins. Use this if you want to manage cargohold exclusively via the command line or direct database interfaces
+* *ExternalAuth*: Delegate authentication to an external entity. Expects the authenticated user (if any) in the REMOTE_USER environment variable
+* *LocalBasicAuth*: Internal implementation of HTTP Basic Auth using htpasswd-style user databases
+* *RemoteCookieAuth*: Custom authentication scheme validating a domain-wide cookie against an external service
+*
diff --git a/interface/admin_files.tmpl b/interface/admin_files.tmpl
index b0828b6..76e97aa 100644
--- a/interface/admin_files.tmpl
+++ b/interface/admin_files.tmpl
@@ -27,9 +27,9 @@
<div id="dirlisting">
{% for file in listing %}
<div class="entry">
- <a class="entry" href="/admin/{{ directory }}/file/{{ file.name }}">{{ file.name }}</a>
+ <a class="entry" href="/admin/{{ directory }}/file/{{ file.name | urlencode }}">{{ file.name }}</a>
<div class="info">{{ (file.size / 1024 / 1024) | round(2, "ceil") }} MB</div>
- <a class="button delete" href="/admin/{{ directory }}/delete/{{ file.name }}">Delete</a>
+ <a class="button delete" href="/admin/{{ directory }}/delete/{{ file.name | urlencode }}">Delete</a>
</div>
{% endfor %}
</div>
diff --git a/interface/listing_default.tmpl b/interface/listing_default.tmpl
new file mode 100644
index 0000000..4a6d8bc
--- /dev/null
+++ b/interface/listing_default.tmpl
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta name="robots" content="noindex,nofollow" />
+ <title>cargohold</title>
+ <link rel="stylesheet" href="/assets/cargohold.css" />
+ <link rel="icon" href="/assets/cargohold.ico" />
+ <script src="/assets/cargohold.js"></script>
+ </head>
+ <body>
+ <div id="header">
+ <h1>cargohold</h1>
+ </div>
+ <div id="container">
+ <div class="tab-wrap">
+ <input type="radio" id="tab-view" name="tabs" class="tab" checked>
+ <label for="tab-view" id="tab-view-label">View</label>
+
+ <input type="radio" id="tab-upload" name="tabs" class="tab">
+ <label for="tab-upload" id="tab-upload-label">Upload</label>
+
+ <div class="tab-content">
+ <div class="buttonrow">
+ <a class="button" href="#" id="download-all">Download all</a>
+ </div>
+ <div id="dirlisting">
+ {% for file in listing %}
+ <a class="listing-entry" href="file/{{ file.name | urlencode }}" data-filename="{{ file.name }}">{{ file.name }}</a>
+ {% endfor %}
+ </div>
+ </div>
+ <div class="tab-content">
+ <div id="upload">
+ <form action="upload" method="post" enctype="multipart/form-data">
+ <label for="files" id="selector-label">
+ △ Select files to upload
+ <input type="file" id="files" name="files" multiple>
+ </label>
+ <input type="submit" value="Start upload" name="submit" id="file-submit">
+
+ </form>
+ </div>
+ <div id="queue">
+ </div>
+ <!--
+ <div id="storage">
+ Storage space left: 2GB / 2GB <br/>
+ <progress value="70" max="100">70 %</progress>
+ </div>
+ -->
+ </div>
+ </div>
+ </div>
+ <div class="footer"><a href="https://git.services.cbcdn.com/cargohold/">cargohold</a> is a free and open source project</div>
+ </body>
+</html>