@@ -49,32 +49,27 @@ pub fn make_state_with_catalog() -> Arc<SharedState> {
4949
5050/// Superuser identity for DDL tests.
5151pub fn superuser ( ) -> AuthenticatedIdentity {
52- AuthenticatedIdentity {
53- user_id : 0 ,
54- username : "nodedb" . into ( ) ,
55- tenant_id : TenantId :: new ( 0 ) ,
56- auth_method : AuthMethod :: Trust ,
57- roles : vec ! [ Role :: Superuser ] ,
58- is_superuser : true ,
59- default_database : None ,
60- accessible_databases : DatabaseSet :: All ,
61- }
52+ let store = nodedb:: control:: security:: credential:: store:: CredentialStore :: new ( )
53+ . expect ( "create test credential store" ) ;
54+ store
55+ . bootstrap_superuser ( "nodedb" , "test-only-password" )
56+ . expect ( "bootstrap test superuser" ) ;
57+ store
58+ . to_identity ( "nodedb" , AuthMethod :: Trust )
59+ . expect ( "build catalog-authenticated test superuser" )
6260}
6361
6462/// Readonly identity for permission tests.
6563pub fn readonly_user ( ) -> AuthenticatedIdentity {
66- AuthenticatedIdentity {
67- user_id : 99 ,
68- username : "viewer" . into ( ) ,
69- tenant_id : TenantId :: new ( 1 ) ,
70- auth_method : AuthMethod :: Trust ,
71- roles : vec ! [ Role :: ReadOnly ] ,
72- is_superuser : false ,
73- default_database : None ,
74- accessible_databases : DatabaseSet :: Some ( smallvec:: smallvec![
75- nodedb_types:: id:: DatabaseId :: DEFAULT
76- ] ) ,
77- }
64+ AuthenticatedIdentity :: new_regular (
65+ 99 ,
66+ "viewer" ,
67+ TenantId :: new ( 1 ) ,
68+ AuthMethod :: Trust ,
69+ vec ! [ Role :: ReadOnly ] ,
70+ None ,
71+ DatabaseSet :: Some ( smallvec:: smallvec![ nodedb_types:: id:: DatabaseId :: DEFAULT , ] ) ,
72+ )
7873}
7974
8075/// Run DDL, expect success.
@@ -144,32 +139,28 @@ pub async fn assert_readonly_denied(state: &SharedState, sql: &str) {
144139
145140/// Cluster-admin identity (no implicit RLS bypass, no cross-DB data access).
146141pub fn cluster_admin_user ( ) -> AuthenticatedIdentity {
147- AuthenticatedIdentity {
148- user_id : 100 ,
149- username : "cluster_admin" . into ( ) ,
150- tenant_id : nodedb:: types:: TenantId :: new ( 1 ) ,
151- auth_method : AuthMethod :: Trust ,
152- roles : vec ! [ Role :: ClusterAdmin ] ,
153- is_superuser : false ,
154- default_database : None ,
155- accessible_databases : DatabaseSet :: Some ( smallvec:: smallvec![
156- nodedb_types:: id:: DatabaseId :: DEFAULT
157- ] ) ,
158- }
142+ AuthenticatedIdentity :: new_regular (
143+ 100 ,
144+ "cluster_admin" ,
145+ nodedb:: types:: TenantId :: new ( 1 ) ,
146+ AuthMethod :: Trust ,
147+ vec ! [ Role :: ClusterAdmin ] ,
148+ None ,
149+ DatabaseSet :: Some ( smallvec:: smallvec![ nodedb_types:: id:: DatabaseId :: DEFAULT , ] ) ,
150+ )
159151}
160152
161153/// Database-owner identity for `db_id`.
162154pub fn database_owner_user ( db_id : nodedb_types:: id:: DatabaseId ) -> AuthenticatedIdentity {
163- AuthenticatedIdentity {
164- user_id : 101 ,
165- username : "db_owner" . into ( ) ,
166- tenant_id : nodedb:: types:: TenantId :: new ( 1 ) ,
167- auth_method : AuthMethod :: Trust ,
168- roles : vec ! [ Role :: DatabaseOwner ( db_id) ] ,
169- is_superuser : false ,
170- default_database : None ,
171- accessible_databases : DatabaseSet :: Some ( smallvec:: smallvec![ db_id] ) ,
172- }
155+ AuthenticatedIdentity :: new_regular (
156+ 101 ,
157+ "db_owner" ,
158+ nodedb:: types:: TenantId :: new ( 1 ) ,
159+ AuthMethod :: Trust ,
160+ vec ! [ Role :: DatabaseOwner ( db_id) ] ,
161+ None ,
162+ DatabaseSet :: Some ( smallvec:: smallvec![ db_id] ) ,
163+ )
173164}
174165
175166/// Assert that the audit log contains at least one entry with `event` and `db_id`.
0 commit comments