mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -06:00
fix md perm reqs + dyn up2k modeset
This commit is contained in:
parent
e7982a04fe
commit
c061461d01
|
@ -120,6 +120,8 @@ class HttpCli(object):
|
||||||
else:
|
else:
|
||||||
uparam[k.lower()] = False
|
uparam[k.lower()] = False
|
||||||
|
|
||||||
|
self.ouparam = {k: v for k, v in uparam.items()}
|
||||||
|
|
||||||
cookies = self.headers.get("cookie") or {}
|
cookies = self.headers.get("cookie") or {}
|
||||||
if cookies:
|
if cookies:
|
||||||
cookies = [x.split("=", 1) for x in cookies.split(";") if "=" in x]
|
cookies = [x.split("=", 1) for x in cookies.split(";") if "=" in x]
|
||||||
|
@ -273,7 +275,7 @@ class HttpCli(object):
|
||||||
return self.tx_tree()
|
return self.tx_tree()
|
||||||
|
|
||||||
# conditional redirect to single volumes
|
# conditional redirect to single volumes
|
||||||
if self.vpath == "" and not self.uparam:
|
if self.vpath == "" and not self.ouparam:
|
||||||
nread = len(self.rvol)
|
nread = len(self.rvol)
|
||||||
nwrite = len(self.wvol)
|
nwrite = len(self.wvol)
|
||||||
if nread + nwrite == 1 or (self.rvol == self.wvol and nread == 1):
|
if nread + nwrite == 1 or (self.rvol == self.wvol and nread == 1):
|
||||||
|
@ -282,6 +284,7 @@ class HttpCli(object):
|
||||||
else:
|
else:
|
||||||
vpath = self.wvol[0]
|
vpath = self.wvol[0]
|
||||||
|
|
||||||
|
if self.vpath != vpath:
|
||||||
self.redirect(vpath, flavor="redirecting to", use302=True)
|
self.redirect(vpath, flavor="redirecting to", use302=True)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
<a href="#" data-perm="write" data-dest="bup" data-desc="bup: basic uploader, even supports netscape 4.0">🎈</a>
|
<a href="#" data-perm="write" data-dest="bup" data-desc="bup: basic uploader, even supports netscape 4.0">🎈</a>
|
||||||
<a href="#" data-perm="write" data-dest="mkdir" data-desc="mkdir: create a new directory">📂</a>
|
<a href="#" data-perm="write" data-dest="mkdir" data-desc="mkdir: create a new directory">📂</a>
|
||||||
<a href="#" data-perm="write" data-dest="new_md" data-desc="new-md: create a new markdown document">📝</a>
|
<a href="#" data-perm="read write" data-dest="new_md" data-desc="new-md: create a new markdown document">📝</a>
|
||||||
<a href="#" data-perm="write" data-dest="msg" data-desc="msg: send a message to the server log">📟</a>
|
<a href="#" data-perm="write" data-dest="msg" data-desc="msg: send a message to the server log">📟</a>
|
||||||
<a href="#" data-dest="cfg" data-desc="configuration options">⚙️</a>
|
<a href="#" data-dest="cfg" data-desc="configuration options">⚙️</a>
|
||||||
<div id="opdesc"></div>
|
<div id="opdesc"></div>
|
||||||
|
|
|
@ -1307,21 +1307,20 @@ function apply_perms(perms) {
|
||||||
perms = perms || [];
|
perms = perms || [];
|
||||||
|
|
||||||
var o = QSA('#ops>a[data-perm]');
|
var o = QSA('#ops>a[data-perm]');
|
||||||
for (var a = 0; a < o.length; a++)
|
for (var a = 0; a < o.length; a++) {
|
||||||
o[a].style.display = 'none';
|
var display = 'inline';
|
||||||
|
var needed = o[a].getAttribute('data-perm').split(' ');
|
||||||
for (var a = 0; a < perms.length; a++) {
|
for (var b = 0; b < needed.length; b++) {
|
||||||
o = QSA('#ops>a[data-perm="' + perms[a] + '"]');
|
if (!has(perms, needed[b])) {
|
||||||
for (var b = 0; b < o.length; b++)
|
display = 'none';
|
||||||
o[b].style.display = 'inline';
|
}
|
||||||
|
}
|
||||||
|
o[a].style.display = display;
|
||||||
}
|
}
|
||||||
|
|
||||||
var act = QS('#ops>a.act');
|
var act = QS('#ops>a.act');
|
||||||
if (act) {
|
if (act && act.style.display === 'none')
|
||||||
var areq = act.getAttribute('data-perm');
|
|
||||||
if (areq && !has(perms, areq))
|
|
||||||
goto();
|
goto();
|
||||||
}
|
|
||||||
|
|
||||||
document.body.setAttribute('perms', perms.join(' '));
|
document.body.setAttribute('perms', perms.join(' '));
|
||||||
|
|
||||||
|
|
|
@ -1309,15 +1309,19 @@ function up2k_init(have_crypto) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_fsearch(new_state) {
|
function set_fsearch(new_state) {
|
||||||
var perms = document.body.getAttribute('perms'),
|
var perms = (document.body.getAttribute('perms') + '').split(' '),
|
||||||
read_only = false;
|
fixed = false;
|
||||||
|
|
||||||
if (!ebi('fsearch')) {
|
if (!ebi('fsearch')) {
|
||||||
new_state = false;
|
new_state = false;
|
||||||
}
|
}
|
||||||
else if (perms && perms.indexOf('write') === -1) {
|
else if (!has(perms, 'write')) {
|
||||||
new_state = true;
|
new_state = true;
|
||||||
read_only = true;
|
fixed = true;
|
||||||
|
}
|
||||||
|
else if (!has(perms, 'read')) {
|
||||||
|
new_state = false;
|
||||||
|
fixed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (new_state !== undefined) {
|
if (new_state !== undefined) {
|
||||||
|
@ -1326,7 +1330,7 @@ function up2k_init(have_crypto) {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
QS('label[for="fsearch"]').style.opacity = read_only ? '0' : '1';
|
QS('label[for="fsearch"]').style.display = QS('#fsearch').style.display = fixed ? 'none' : '';
|
||||||
}
|
}
|
||||||
catch (ex) { }
|
catch (ex) { }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue