@@ -15,7 +15,7 @@ import {
15
15
import { AccountStatement , Subscription } from "@gitpod/gitpod-protocol/lib/accounting-protocol" ;
16
16
import { Plans } from "@gitpod/gitpod-protocol/lib/plans" ;
17
17
import dayjs from "dayjs" ;
18
- import { useEffect , useRef , useState } from "react" ;
18
+ import { useEffect , useRef , useState , useContext } from "react" ;
19
19
import CheckBox from "../components/CheckBox" ;
20
20
import Modal from "../components/Modal" ;
21
21
import { getGitpodService } from "../service/service" ;
@@ -26,8 +26,10 @@ import { BillingMode } from "@gitpod/gitpod-protocol/lib/billing-mode";
26
26
import { AttributionId } from "@gitpod/gitpod-protocol/lib/attribution" ;
27
27
import CaretDown from "../icons/CaretDown.svg" ;
28
28
import ContextMenu from "../components/ContextMenu" ;
29
+ import { FeatureFlagContext } from "../contexts/FeatureFlagContext" ;
29
30
30
31
export default function UserDetail ( p : { user : User } ) {
32
+ const { useSlowDatabase } = useContext ( FeatureFlagContext ) ;
31
33
const [ activity , setActivity ] = useState ( false ) ;
32
34
const [ user , setUser ] = useState ( p . user ) ;
33
35
const [ billingMode , setBillingMode ] = useState < BillingMode | undefined > ( undefined ) ;
@@ -42,16 +44,16 @@ export default function UserDetail(p: { user: User }) {
42
44
43
45
useEffect ( ( ) => {
44
46
setUser ( p . user ) ;
45
- getGitpodService ( )
47
+ getGitpodService ( useSlowDatabase )
46
48
. server . adminGetAccountStatement ( p . user . id )
47
49
. then ( ( as ) => setAccountStatement ( as ) )
48
50
. catch ( ( e ) => {
49
51
console . error ( e ) ;
50
52
} ) ;
51
- getGitpodService ( )
53
+ getGitpodService ( useSlowDatabase )
52
54
. server . adminIsStudent ( p . user . id )
53
55
. then ( ( isStud ) => setIsStudent ( isStud ) ) ;
54
- getGitpodService ( )
56
+ getGitpodService ( useSlowDatabase )
55
57
. server . adminGetBillingMode ( AttributionId . render ( { kind : "user" , userId : p . user . id } ) )
56
58
. then ( ( bm ) => setBillingMode ( bm ) ) ;
57
59
} , [ p . user ] ) ;
@@ -75,8 +77,8 @@ export default function UserDetail(p: { user: User }) {
75
77
}
76
78
77
79
await updateUser ( async ( u ) => {
78
- await getGitpodService ( ) . server . adminAddStudentEmailDomain ( u . id , emailDomain ) ;
79
- await getGitpodService ( )
80
+ await getGitpodService ( useSlowDatabase ) . server . adminAddStudentEmailDomain ( u . id , emailDomain ) ;
81
+ await getGitpodService ( useSlowDatabase )
80
82
. server . adminIsStudent ( u . id )
81
83
. then ( ( isStud ) => setIsStudent ( isStud ) ) ;
82
84
return u ;
@@ -85,14 +87,14 @@ export default function UserDetail(p: { user: User }) {
85
87
86
88
const verifyUser = async ( ) => {
87
89
await updateUser ( async ( u ) => {
88
- return await getGitpodService ( ) . server . adminVerifyUser ( u . id ) ;
90
+ return await getGitpodService ( useSlowDatabase ) . server . adminVerifyUser ( u . id ) ;
89
91
} ) ;
90
92
} ;
91
93
92
94
const toggleBlockUser = async ( ) => {
93
95
await updateUser ( async ( u ) => {
94
96
u . blocked = ! u . blocked ;
95
- await getGitpodService ( ) . server . adminBlockUser ( {
97
+ await getGitpodService ( useSlowDatabase ) . server . adminBlockUser ( {
96
98
blocked : u . blocked ,
97
99
id : u . id ,
98
100
} ) ;
@@ -103,7 +105,7 @@ export default function UserDetail(p: { user: User }) {
103
105
const deleteUser = async ( ) => {
104
106
await updateUser ( async ( u ) => {
105
107
u . markedDeleted = ! u . markedDeleted ;
106
- await getGitpodService ( ) . server . adminDeleteUser ( u . id ) ;
108
+ await getGitpodService ( useSlowDatabase ) . server . adminDeleteUser ( u . id ) ;
107
109
return u ;
108
110
} ) ;
109
111
} ;
@@ -166,7 +168,10 @@ export default function UserDetail(p: { user: User }) {
166
168
{
167
169
label : "Grant 20 Extra Hours" ,
168
170
onClick : async ( ) => {
169
- await getGitpodService ( ) . server . adminGrantExtraHours ( user . id , 20 ) ;
171
+ await getGitpodService ( useSlowDatabase ) . server . adminGrantExtraHours (
172
+ user . id ,
173
+ 20 ,
174
+ ) ;
170
175
setAccountStatement (
171
176
await getGitpodService ( ) . server . adminGetAccountStatement ( user . id ) ,
172
177
) ;
@@ -186,12 +191,14 @@ export default function UserDetail(p: { user: User }) {
186
191
{
187
192
label : ( isProfessionalOpenSource ? "Disable" : "Enable" ) + " Professional OSS" ,
188
193
onClick : async ( ) => {
189
- await getGitpodService ( ) . server . adminSetProfessionalOpenSource (
194
+ await getGitpodService ( useSlowDatabase ) . server . adminSetProfessionalOpenSource (
190
195
user . id ,
191
196
! isProfessionalOpenSource ,
192
197
) ;
193
198
setAccountStatement (
194
- await getGitpodService ( ) . server . adminGetAccountStatement ( user . id ) ,
199
+ await getGitpodService ( useSlowDatabase ) . server . adminGetAccountStatement (
200
+ user . id ,
201
+ ) ,
195
202
) ;
196
203
} ,
197
204
} ,
@@ -386,7 +393,7 @@ function getFlags(user: User, updateUser: UpdateUserFunction): Entry[] {
386
393
checked,
387
394
onClick : async ( ) => {
388
395
await updateUser ( async ( u ) => {
389
- return await getGitpodService ( ) . server . adminModifyPermanentWorkspaceFeatureFlag ( {
396
+ return await getGitpodService ( useSlowDatabase ) . server . adminModifyPermanentWorkspaceFeatureFlag ( {
390
397
id : user . id ,
391
398
changes : [
392
399
{
@@ -409,7 +416,7 @@ function getRopEntries(user: User, updateUser: UpdateUserFunction): Entry[] {
409
416
checked,
410
417
onClick : async ( ) => {
411
418
await updateUser ( async ( u ) => {
412
- return await getGitpodService ( ) . server . adminModifyRoleOrPermission ( {
419
+ return await getGitpodService ( useSlowDatabase ) . server . adminModifyRoleOrPermission ( {
413
420
id : user . id ,
414
421
rpp : [
415
422
{
0 commit comments