(
defsetting
has-user-setup
(
deferred-tru
"A value that is true iff the metabase instance has one or more users registered."
)
:visibility
:public
:type
:boolean
:setter
(
fn
[
value
]
(
if
(
or
config/is-dev?
config/is-test?
)
(
setting/set-value-of-type!
:boolean
:has-user-setup
value
)
(
throw
(
ex-info
(
tru
"Cannot set `has-user-setup`."
)
{
:value
value
}
)
)
)
)
:getter
(
let
[
app-db-id->user-exists?
(
atom
{
}
)
]
(
fn
[
]
(
let
[
possible-override
(
when
(
or
config/is-dev?
config/is-test?
)
(
setting/get-value-of-type
:boolean
:has-user-setup
)
)
]
(
if
(
some?
possible-override
)
possible-override
(
or
(
get
@
app-db-id->user-exists?
(
mdb/unique-identifier
)
)
(
let
[
exists?
(
boolean
(
seq
(
t2/select
:model/User
{
:where
[
:not=
:id
config/internal-mb-user-id
]
}
)
)
)
]
(
swap!
app-db-id->user-exists?
assoc
(
mdb/unique-identifier
)
exists?
)
exists?
)
)
)
)
)
)
:doc
false
:audit
:never
)