X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/44184f3bebe52f3d4ea567b8105f3631fcb003fe..b9ad383c4e27d4e3c1945e14ba51fffdd61fdb36:/services/datamanager/datamanager.go diff --git a/services/datamanager/datamanager.go b/services/datamanager/datamanager.go index 70a9ae7859..8ca107b1e5 100644 --- a/services/datamanager/datamanager.go +++ b/services/datamanager/datamanager.go @@ -84,6 +84,17 @@ func singlerun() error { arvLogger.AddWriteHook(loggerutil.LogMemoryAlloc) } + // Verify that datamanager token belongs to an admin user + dataManagerToken := keep.GetDataManagerToken(arvLogger) + origArvToken := arv.ApiToken + arv.ApiToken = dataManagerToken + if is_admin, err := util.UserIsAdmin(arv); err != nil { + log.Fatalf("Error querying arvados user for data manager token %s", err.Error()) + } else if !is_admin { + log.Fatalf("Datamanager token does not belong to an admin user.") + } + arv.ApiToken = origArvToken + var ( dataFetcher summary.DataFetcher readCollections collection.ReadCollections @@ -154,7 +165,7 @@ func singlerun() error { if trashErr != nil { return err } else { - keep.SendTrashLists(keep.GetDataManagerToken(arvLogger), kc, trashLists) + keep.SendTrashLists(dataManagerToken, kc, trashLists) } return nil