Skip to content

Commit 218dcd9

Browse files
committed
fix: configure alias permissions per collection
1 parent 2a4065a commit 218dcd9

File tree

5 files changed

+15
-12
lines changed

5 files changed

+15
-12
lines changed

src/main/java/io/weaviate/client/v1/rbac/model/AliasPermission.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
@EqualsAndHashCode(callSuper = true)
99
public class AliasPermission extends Permission<AliasPermission> {
1010
final String alias;
11+
final String collection;
1112

12-
public AliasPermission(String alias, Action... actions) {
13+
public AliasPermission(String alias, String collection, Action... actions) {
1314
super(actions);
1415
this.alias = alias;
16+
this.collection = collection;
1517
}
1618

17-
AliasPermission(String alias, String action) {
18-
this(alias, RbacAction.fromString(Action.class, action));
19+
AliasPermission(String alias, String collection, String action) {
20+
this(alias, collection, RbacAction.fromString(Action.class, action));
1921
}
2022

2123
@AllArgsConstructor

src/main/java/io/weaviate/client/v1/rbac/model/Permission.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ private WeaviatePermission toWeaviate(String action) {
6767
public static Permission<?> fromWeaviate(WeaviatePermission perm) {
6868
String action = perm.getAction();
6969
if (perm.getAliases() != null) {
70-
return new AliasPermission(perm.getAliases().getAlias(), action);
70+
AliasPermission aliases = perm.getAliases();
71+
return new AliasPermission(aliases.getAlias(), aliases.getCollection(), action);
7172
} else if (perm.getBackups() != null) {
7273
return new BackupsPermission(perm.getBackups().getCollection(), action);
7374
} else if (perm.getCollections() != null) {
@@ -132,11 +133,11 @@ private Key(Object object) {
132133
* Create {@link AliasPermission} for an alias.
133134
* <p>
134135
* Example:
135-
* {@code Permission.alias("PizzaAlias", AliasPermission.Action.CREATE) }
136+
* {@code Permission.alias("PizzaAlias", "Pizza", AliasPermission.Action.CREATE) }
136137
*/
137-
public static AliasPermission alias(String alias, AliasPermission.Action... actions) {
138+
public static AliasPermission alias(String alias, String collection, AliasPermission.Action... actions) {
138139
checkDeprecation(actions);
139-
return new AliasPermission(alias, actions);
140+
return new AliasPermission(alias, collection, actions);
140141
}
141142

142143
/**

src/test/java/io/weaviate/client/v1/rbac/api/WeaviatePermissionTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public class WeaviatePermissionTest {
2828
public void testMergedPermissions() {
2929
WeaviatePermission[] apiPermissions = {
3030
// Create and delete PizzaAlias alias
31-
new WeaviatePermission("create_aliases", new AliasPermission("PizzaAlias")),
32-
new WeaviatePermission("delete_aliases", new AliasPermission("PizzaAlias")),
31+
new WeaviatePermission("create_aliases", new AliasPermission("PizzaAlias", "Pizza")),
32+
new WeaviatePermission("delete_aliases", new AliasPermission("PizzaAlias", "Pizza")),
3333

3434
// Manage Pizza backups
3535
new WeaviatePermission("manage_backups", new BackupsPermission("Pizza")),
@@ -75,7 +75,7 @@ public void testMergedPermissions() {
7575
};
7676

7777
Permission<?>[] libraryPermissions = {
78-
new AliasPermission("PizzaAlias", AliasPermission.Action.CREATE, AliasPermission.Action.DELETE),
78+
new AliasPermission("PizzaAlias", "Pizza", AliasPermission.Action.CREATE, AliasPermission.Action.DELETE),
7979
new BackupsPermission("Pizza", BackupsPermission.Action.MANAGE),
8080
new DataPermission("Pizza", DataPermission.Action.MANAGE, DataPermission.Action.READ),
8181
new DataPermission("Songs", DataPermission.Action.UPDATE, DataPermission.Action.DELETE),

src/test/java/io/weaviate/client/v1/rbac/model/PermissionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
@RunWith(JParamsTestRunner.class)
2424
public class PermissionTest {
2525
public static Object[][] serializationTestCases() {
26-
AliasPermission alias = new AliasPermission("PizzaAlias", AliasPermission.Action.CREATE);
26+
AliasPermission alias = new AliasPermission("PizzaAlias", "Pizza", AliasPermission.Action.CREATE);
2727
BackupsPermission backups = new BackupsPermission("Pizza", BackupsPermission.Action.MANAGE);
2828
DataPermission data = new DataPermission("Pizza", DataPermission.Action.MANAGE);
2929
NodesPermission nodes = new NodesPermission("Pizza", NodesPermission.Action.READ);

src/test/java/io/weaviate/integration/tests/rbac/ClientRbacTestSuite.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public void testCreate(String _name, Supplier<Rbac> rbac) {
137137
String myCollectionAlias = "PizzaAlias";
138138

139139
Permission<?>[] wantPermissions = new Permission<?>[] {
140-
Permission.alias(myCollectionAlias, AliasPermission.Action.CREATE),
140+
Permission.alias(myCollectionAlias, myCollection, AliasPermission.Action.CREATE),
141141
Permission.backups(myCollection, BackupsPermission.Action.MANAGE),
142142
Permission.cluster(ClusterPermission.Action.READ),
143143
Permission.nodes(myCollection, NodesPermission.Action.READ),

0 commit comments

Comments
 (0)