big update in share links
This commit is contained in:
1 parent
e3ee6319b9
commit
fe5d00fcdd
27 files changed
+434
-176
No files matched your search
+8
-10
@@ -249,15 +249,18 @@ async fn current_resource_access(
|
||||
access_tokens: &[Option<&str>],
|
||||
session_token: Option<&str>,
|
||||
password_ok: bool,
|
||||
public_unprotected: bool,
|
||||
) -> (bool, bool) {
|
||||
if auth::resource_is_public_unprotected(state, kind, slug)
|
||||
.await
|
||||
.unwrap_or(false)
|
||||
{
|
||||
return (true, true);
|
||||
}
|
||||
let permission =
|
||||
resource_permission_from_tokens(state, kind, slug, access_tokens, session_token).await;
|
||||
let password_token_ok = password_access_from_tokens(state, kind, slug, access_tokens).await;
|
||||
let write_allowed = public_unprotected
|
||||
|| password_ok
|
||||
|| password_token_ok
|
||||
|| permission.as_deref() == Some("rw");
|
||||
let write_allowed =
|
||||
password_ok || password_token_ok || permission.as_deref() == Some("rw");
|
||||
let read_allowed = write_allowed || permission.as_deref() == Some("ro");
|
||||
(read_allowed, write_allowed)
|
||||
}
|
||||
@@ -451,7 +454,6 @@ async fn handle_socket(
|
||||
let _ = send_error(&mut socket, "Invalid password").await;
|
||||
return;
|
||||
}
|
||||
let public_unprotected = workspace.is_private == 0 && workspace.password_hash.is_none();
|
||||
let (_, write_allowed) = current_resource_access(
|
||||
&state,
|
||||
"workspace",
|
||||
@@ -459,7 +461,6 @@ async fn handle_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
)
|
||||
.await;
|
||||
info!(workspace_id = workspace.id, note_id = note.id, nickname = ?nickname, "note websocket authenticated");
|
||||
@@ -520,7 +521,6 @@ async fn handle_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed { let _=send_split(&mut sender,&ServerMessage::Error{message:"Access expired or revoked".into()}).await; break; }
|
||||
if !current_write_allowed { let _=send_split(&mut sender,&ServerMessage::Error{message:"Read-only access".into()}).await; continue; }
|
||||
@@ -549,7 +549,6 @@ async fn handle_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed {
|
||||
let _=send_split(&mut sender,&ServerMessage::Error{message:"Access expired or revoked".into()}).await;
|
||||
@@ -564,7 +563,6 @@ async fn handle_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed {
|
||||
let _=send_split(&mut sender,&ServerMessage::Error{message:"Access expired or revoked".into()}).await;
|
||||
|
||||
@@ -218,7 +218,6 @@ async fn handle_pad_socket(
|
||||
.await;
|
||||
return;
|
||||
}
|
||||
let public_unprotected = pad.is_private == 0 && pad.password_hash.is_none();
|
||||
let (_, write_allowed) = current_resource_access(
|
||||
&state,
|
||||
"pad",
|
||||
@@ -226,7 +225,6 @@ async fn handle_pad_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
)
|
||||
.await;
|
||||
info!(pad_id = pad.id, nickname = ?nickname, "pad websocket authenticated");
|
||||
@@ -286,7 +284,6 @@ async fn handle_pad_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed { let _=send_pad_split(&mut sender,&PadServerMessage::Error{message:"Access expired or revoked".into()}).await;break; }
|
||||
if !current_write_allowed{let _=send_pad_split(&mut sender,&PadServerMessage::Error{message:"Read-only access".into()}).await;continue;}
|
||||
@@ -317,7 +314,6 @@ async fn handle_pad_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed {
|
||||
let _=send_pad_split(&mut sender,&PadServerMessage::Error{message:"Access expired or revoked".into()}).await;
|
||||
@@ -332,7 +328,6 @@ async fn handle_pad_socket(
|
||||
&external_tokens,
|
||||
session_token.as_deref(),
|
||||
password_ok,
|
||||
public_unprotected,
|
||||
).await;
|
||||
if !read_allowed {
|
||||
let _=send_pad_split(&mut sender,&PadServerMessage::Error{message:"Access expired or revoked".into()}).await;
|
||||
|
||||
Reference in new issue
Block a user