mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-16 09:24:00 +00:00
Adding some helper functions.
This commit is contained in:
parent
f81a7ad9ab
commit
5e5063cbdd
3 changed files with 30 additions and 41 deletions
|
@ -148,6 +148,10 @@ impl Post {
|
||||||
.set(stickied.eq(new_stickied))
|
.set(stickied.eq(new_stickied))
|
||||||
.get_result::<Self>(conn)
|
.get_result::<Self>(conn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn is_post_creator(user_id: i32, post_creator_id: i32) -> bool {
|
||||||
|
user_id == post_creator_id
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Crud<PostForm> for Post {
|
impl Crud<PostForm> for Post {
|
||||||
|
|
|
@ -433,19 +433,7 @@ impl Perform for Oper<EditCommunity> {
|
||||||
community: community_view,
|
community: community_view,
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(ws) = websocket_info {
|
send_community_websocket(&res, websocket_info, UserOperation::EditCommunity);
|
||||||
// Strip out the user id and subscribed when sending to others
|
|
||||||
let mut res_sent = res.clone();
|
|
||||||
res_sent.community.user_id = None;
|
|
||||||
res_sent.community.subscribed = None;
|
|
||||||
|
|
||||||
ws.chatserver.do_send(SendCommunityRoomMessage {
|
|
||||||
op: UserOperation::EditCommunity,
|
|
||||||
response: res_sent,
|
|
||||||
community_id: data.edit_id,
|
|
||||||
my_id: ws.id,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
||||||
|
@ -515,19 +503,7 @@ impl Perform for Oper<DeleteCommunity> {
|
||||||
community: community_view,
|
community: community_view,
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(ws) = websocket_info {
|
send_community_websocket(&res, websocket_info, UserOperation::DeleteCommunity);
|
||||||
// Strip out the user id and subscribed when sending to others
|
|
||||||
let mut res_sent = res.clone();
|
|
||||||
res_sent.community.user_id = None;
|
|
||||||
res_sent.community.subscribed = None;
|
|
||||||
|
|
||||||
ws.chatserver.do_send(SendCommunityRoomMessage {
|
|
||||||
op: UserOperation::DeleteCommunity,
|
|
||||||
response: res_sent,
|
|
||||||
community_id: data.edit_id,
|
|
||||||
my_id: ws.id,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
||||||
|
@ -613,19 +589,7 @@ impl Perform for Oper<RemoveCommunity> {
|
||||||
community: community_view,
|
community: community_view,
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(ws) = websocket_info {
|
send_community_websocket(&res, websocket_info, UserOperation::RemoveCommunity);
|
||||||
// Strip out the user id and subscribed when sending to others
|
|
||||||
let mut res_sent = res.clone();
|
|
||||||
res_sent.community.user_id = None;
|
|
||||||
res_sent.community.subscribed = None;
|
|
||||||
|
|
||||||
ws.chatserver.do_send(SendCommunityRoomMessage {
|
|
||||||
op: UserOperation::RemoveCommunity,
|
|
||||||
response: res_sent,
|
|
||||||
community_id: data.edit_id,
|
|
||||||
my_id: ws.id,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
||||||
|
@ -831,6 +795,7 @@ impl Perform for Oper<BanFromCommunity> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mod tables
|
// Mod tables
|
||||||
|
// TODO eventually do correct expires
|
||||||
let expires = match data.expires {
|
let expires = match data.expires {
|
||||||
Some(time) => Some(naive_from_unix(time)),
|
Some(time) => Some(naive_from_unix(time)),
|
||||||
None => None,
|
None => None,
|
||||||
|
@ -1055,3 +1020,23 @@ impl Perform for Oper<TransferCommunity> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn send_community_websocket(
|
||||||
|
res: &CommunityResponse,
|
||||||
|
websocket_info: Option<WebsocketInfo>,
|
||||||
|
op: UserOperation,
|
||||||
|
) {
|
||||||
|
if let Some(ws) = websocket_info {
|
||||||
|
// Strip out the user id and subscribed when sending to others
|
||||||
|
let mut res_sent = res.clone();
|
||||||
|
res_sent.community.user_id = None;
|
||||||
|
res_sent.community.subscribed = None;
|
||||||
|
|
||||||
|
ws.chatserver.do_send(SendCommunityRoomMessage {
|
||||||
|
op,
|
||||||
|
response: res_sent,
|
||||||
|
community_id: res.community.id,
|
||||||
|
my_id: ws.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -589,7 +589,7 @@ impl Perform for Oper<EditPost> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that only the creator can edit
|
// Verify that only the creator can edit
|
||||||
if user_id != orig_post.creator_id {
|
if !Post::is_post_creator(user_id, orig_post.creator_id) {
|
||||||
return Err(APIError::err("no_post_edit_allowed").into());
|
return Err(APIError::err("no_post_edit_allowed").into());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -692,7 +692,7 @@ impl Perform for Oper<DeletePost> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that only the creator can delete
|
// Verify that only the creator can delete
|
||||||
if user_id != orig_post.creator_id {
|
if !Post::is_post_creator(user_id, orig_post.creator_id) {
|
||||||
return Err(APIError::err("no_post_edit_allowed").into());
|
return Err(APIError::err("no_post_edit_allowed").into());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue