Skip to content

Commit e2032ab

Browse files
authored
Make tag in reader role optional (#463)
1 parent 24a38e2 commit e2032ab

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

server/src/handlers/http/query.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ impl FromRequest for Query {
8989
match permission {
9090
Permission::Stream(Action::All, _) => authorized = true,
9191
Permission::StreamWithTag(Action::Query, stream, tag)
92-
if stream == query.stream_name =>
92+
if stream == query.stream_name || stream == "*" =>
9393
{
9494
authorized = true;
9595
if let Some(tag) = tag {

server/src/rbac/role.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ pub mod model {
110110
Admin,
111111
Editor,
112112
Writer { stream: String },
113-
Reader { stream: String, tag: String },
113+
Reader { stream: String, tag: Option<String> },
114114
}
115115

116116
impl From<&DefaultPrivilege> for RoleBuilder {
@@ -121,9 +121,13 @@ pub mod model {
121121
DefaultPrivilege::Writer { stream } => {
122122
writer_perm_builder().with_stream(stream.to_owned())
123123
}
124-
DefaultPrivilege::Reader { stream, tag } => reader_perm_builder()
125-
.with_stream(stream.to_owned())
126-
.with_tag(tag.to_owned()),
124+
DefaultPrivilege::Reader { stream, tag } => {
125+
let mut reader = reader_perm_builder().with_stream(stream.to_owned());
126+
if let Some(tag) = tag {
127+
reader = reader.with_tag(tag.to_owned())
128+
}
129+
reader
130+
}
127131
}
128132
}
129133
}

0 commit comments

Comments
 (0)