Compare commits

...
8 Commits
18 changed files with 112 additions and 37 deletions

No files matched your search

+1 -1
View File
@@ -57,7 +57,7 @@ jobs:
env:
TEST_DB: REFERENCE
run: |
cargo run --bin revolt-delta &
cargo build --bin revolt-delta && (cargo run --bin revolt-delta &)
- name: Wait for API to go up
if: github.event_name != 'pull_request' && github.ref_name == 'master'
Generated
+9 -9
View File
@@ -3580,7 +3580,7 @@ dependencies = [
[[package]]
name = "revolt-bonfire"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-std",
"async-tungstenite",
@@ -3600,7 +3600,7 @@ dependencies = [
[[package]]
name = "revolt-config"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-std",
"cached",
@@ -3612,7 +3612,7 @@ dependencies = [
[[package]]
name = "revolt-database"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-lock",
"async-recursion",
@@ -3657,7 +3657,7 @@ dependencies = [
[[package]]
name = "revolt-delta"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-channel",
"async-std",
@@ -3703,7 +3703,7 @@ dependencies = [
[[package]]
name = "revolt-models"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"indexmap",
"iso8601-timestamp 0.2.11",
@@ -3719,7 +3719,7 @@ dependencies = [
[[package]]
name = "revolt-permissions"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-std",
"async-trait",
@@ -3734,7 +3734,7 @@ dependencies = [
[[package]]
name = "revolt-presence"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-std",
"log",
@@ -3745,7 +3745,7 @@ dependencies = [
[[package]]
name = "revolt-quark"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"async-lock",
"async-recursion",
@@ -3798,7 +3798,7 @@ dependencies = [
[[package]]
name = "revolt-result"
version = "0.6.12"
version = "0.6.13"
dependencies = [
"revolt_okapi",
"revolt_rocket_okapi",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-bonfire"
version = "0.6.12"
version = "0.6.13"
license = "AGPL-3.0-or-later"
edition = "2021"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-config"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
+6 -6
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-database"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
@@ -23,11 +23,11 @@ default = ["mongodb", "async-std-runtime", "tasks"]
[dependencies]
# Core
revolt-config = { version = "0.6.12", path = "../config" }
revolt-result = { version = "0.6.12", path = "../result" }
revolt-models = { version = "0.6.12", path = "../models" }
revolt-presence = { version = "0.6.12", path = "../presence" }
revolt-permissions = { version = "0.6.12", path = "../permissions", features = [
revolt-config = { version = "0.6.13", path = "../config" }
revolt-result = { version = "0.6.13", path = "../result" }
revolt-models = { version = "0.6.13", path = "../models" }
revolt-presence = { version = "0.6.13", path = "../presence" }
revolt-permissions = { version = "0.6.13", path = "../permissions", features = [
"serde",
"bson",
] }
@@ -0,0 +1,28 @@
[
{
"_object_type": "User",
"_id": "__ID:0__",
"username": "Owner",
"discriminator": "0001"
},
{
"_object_type": "User",
"_id": "__ID:1__",
"username": "Member",
"discriminator": "0001"
},
{
"_object_type": "User",
"_id": "__ID:2__",
"username": "Member",
"discriminator": "0002"
},
{
"_object_type": "Channel",
"_id": "__ID:3__",
"channel_type": "Group",
"name": "My Group",
"owner": "__ID:0__",
"recipients": ["__ID:0__", "__ID:1__"]
}
]
@@ -695,6 +695,32 @@ mod tests {
use crate::{fixture, util::permissions::DatabasePermissionQuery};
#[async_std::test]
async fn permissions_group_channel() {
database_test!(|db| async move {
fixture!(db, "group_with_members",
owner user 0
member1 user 1
member2 user 2
channel channel 3);
let mut query = DatabasePermissionQuery::new(&db, &owner).channel(&channel);
assert!(calculate_channel_permissions(&mut query)
.await
.has_channel_permission(ChannelPermission::SendMessage));
let mut query = DatabasePermissionQuery::new(&db, &member1).channel(&channel);
assert!(calculate_channel_permissions(&mut query)
.await
.has_channel_permission(ChannelPermission::SendMessage));
let mut query = DatabasePermissionQuery::new(&db, &member2).channel(&channel);
assert!(!calculate_channel_permissions(&mut query)
.await
.has_channel_permission(ChannelPermission::SendMessage));
});
}
#[async_std::test]
async fn permissions_text_channel() {
database_test!(|db| async move {
+2 -2
View File
@@ -2,7 +2,7 @@ use std::borrow::Cow;
use revolt_permissions::{
calculate_user_permissions, ChannelType, Override, PermissionQuery, PermissionValue,
RelationshipStatus,
RelationshipStatus, DEFAULT_PERMISSION_DIRECT_MESSAGE,
};
use crate::{Channel, Database, Member, Server, User};
@@ -209,7 +209,7 @@ impl PermissionQuery for DatabasePermissionQuery<'_> {
match channel {
Cow::Borrowed(Channel::Group { permissions, .. })
| Cow::Owned(Channel::Group { permissions, .. }) => Override {
allow: permissions.unwrap_or_default() as u64,
allow: permissions.unwrap_or(*DEFAULT_PERMISSION_DIRECT_MESSAGE as i64) as u64,
deny: 0,
},
Cow::Borrowed(Channel::TextChannel {
+3 -3
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-models"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
@@ -18,8 +18,8 @@ default = ["serde", "partials"]
[dependencies]
# Core
revolt-config = { version = "0.6.12", path = "../config" }
revolt-permissions = { version = "0.6.12", path = "../permissions" }
revolt-config = { version = "0.6.13", path = "../config" }
revolt-permissions = { version = "0.6.13", path = "../permissions" }
# Utility
regex = "1"
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-permissions"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
@@ -21,7 +21,7 @@ async-std = { version = "1.8.0", features = ["attributes"] }
[dependencies]
# Core
revolt-result = { version = "0.6.5", path = "../result" }
revolt-result = { version = "0.6.13", path = "../result" }
# Utility
auto_ops = "0.3.0"
+1 -1
View File
@@ -111,7 +111,7 @@ pub async fn calculate_channel_permissions<P: PermissionQuery>(query: &mut P) ->
query.set_server_from_channel().await;
if query.are_we_server_owner().await {
return ChannelPermission::GrantAllSafe.into();
ChannelPermission::GrantAllSafe.into()
} else if query.are_we_a_member().await {
let mut permissions = calculate_server_permissions(query).await;
permissions.apply(query.get_default_channel_permissions().await);
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-presence"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-result"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-delta"
version = "0.6.12"
version = "0.6.13"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018"
@@ -65,13 +65,8 @@ pub async fn message_send(
// Disallow mentions for new users (TRUST-0: <12 hours age) in public servers
let allow_mentions = if let Some(server) = query.server_ref() {
if server.discoverable {
if (Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime())
< Duration::hours(12)
{
false
} else {
true
}
(Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime())
>= Duration::hours(12)
} else {
true
}
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "revolt-quark"
version = "0.6.12"
version = "0.6.13"
edition = "2021"
license = "AGPL-3.0-or-later"
+12
View File
@@ -5,3 +5,15 @@ publish:
cargo publish --package revolt-models
cargo publish --package revolt-presence
cargo publish --package revolt-database
patch:
cargo release version patch --execute
minor:
cargo release version minor --execute
major:
cargo release version major --execute
release:
scripts/try-tag-and-release.sh
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
date=$(date +'%Y%m%d')
incr=1
while [ $(git tag -l "$date-$incr") ]; do
incr=$((incr+1))
done
tag=$date-$incr
echo About to tag and push $tag in 3 seconds...
sleep 3s
git tag $tag
git push --atomic origin $(git rev-parse --abbrev-ref HEAD) $tag