Skip to content

Commit 22c0704

Browse files
author
James Williams
authored
Password policy and user management improvement (#179)
## What is the goal of this PR? We've added two protobuf messages and modified one, enabling us to provide password policy features to TypeDB Cluster. See the PR for further information: https://github.com/vaticle/typedb-cluster/pull/456 ## What are the changes implemented in this PR? We've added: * `users_password_set`, a message carrying the information for an administrator to overwrite any other user's existing password. * `users_get`, that returns the user and associated information (currently only the username and the number of days before said user's password expires.) * The `User` message, which includes all the information returned by `users_get` and `users_all`. We've modified: * `users_delete`, moving the method to the user manager. * `user_password_update`, splitting it into `users_password_set` for administrators and this message that allows user's to update their own passwords.
1 parent c07c588 commit 22c0704

File tree

2 files changed

+37
-10
lines changed

2 files changed

+37
-10
lines changed

cluster/cluster_service.proto

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ service TypeDBCluster {
3636
// User Manager API
3737
rpc users_contains (ClusterUserManager.Contains.Req) returns (ClusterUserManager.Contains.Res);
3838
rpc users_create (ClusterUserManager.Create.Req) returns (ClusterUserManager.Create.Res);
39+
rpc users_delete (ClusterUserManager.Delete.Req) returns (ClusterUserManager.Delete.Res);
3940
rpc users_all (ClusterUserManager.All.Req) returns (ClusterUserManager.All.Res);
41+
rpc users_password_set (ClusterUserManager.PasswordSet.Req) returns (ClusterUserManager.PasswordSet.Res);
42+
rpc users_get (ClusterUserManager.Get.Req) returns (ClusterUserManager.Get.Res);
4043

4144
// User API
42-
rpc user_password (ClusterUser.Password.Req) returns (ClusterUser.Password.Res);
45+
rpc user_password_update (ClusterUser.PasswordUpdate.Req) returns (ClusterUser.PasswordUpdate.Res);
4346
rpc user_token (ClusterUser.Token.Req) returns (ClusterUser.Token.Res);
44-
rpc user_delete (ClusterUser.Delete.Req) returns (ClusterUser.Delete.Res);
4547

4648
// Database Manager API
4749
rpc databases_get (ClusterDatabaseManager.Get.Req) returns (ClusterDatabaseManager.Get.Res);

cluster/cluster_user.proto

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,45 @@ message ClusterUserManager {
4141
message Res {}
4242
}
4343

44+
message Delete {
45+
message Req {
46+
string username = 1;
47+
}
48+
message Res {}
49+
}
50+
4451
message All {
4552
message Req {}
4653
message Res {
47-
repeated string names = 1;
54+
repeated User users = 1;
55+
}
56+
}
57+
58+
message PasswordSet {
59+
message Req {
60+
string username = 1;
61+
string password = 2;
62+
}
63+
message Res {}
64+
}
65+
66+
message Get {
67+
message Req {
68+
string username = 1;
69+
}
70+
message Res {
71+
User user = 1;
4872
}
4973
}
5074
}
5175

5276
message ClusterUser {
5377

54-
message Password {
78+
message PasswordUpdate {
5579
message Req {
5680
string username = 1;
57-
string password = 2;
81+
string password_old = 2;
82+
string password_new = 3;
5883
}
5984
message Res {}
6085
}
@@ -68,12 +93,12 @@ message ClusterUser {
6893
string token = 1;
6994
}
7095
}
96+
}
7197

72-
message Delete {
73-
message Req {
74-
string username = 1;
75-
}
76-
message Res {}
98+
message User {
99+
string username = 1;
100+
oneof password_expiry {
101+
int64 password_expiry_days = 2;
77102
}
78103
}
79104

0 commit comments

Comments
 (0)