summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltofrontend.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/typeutils/internaltofrontend.go')
-rw-r--r--internal/typeutils/internaltofrontend.go22
1 files changed, 20 insertions, 2 deletions
diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go
index ac834f78d..9c55a55f4 100644
--- a/internal/typeutils/internaltofrontend.go
+++ b/internal/typeutils/internaltofrontend.go
@@ -185,13 +185,30 @@ func (c *converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A
emojis = append(emojis, apiEmoji)
}
- var acct string
+ var (
+ acct string
+ role = model.AccountRoleUnknown
+ )
+
if a.Domain != "" {
// this is a remote user
- acct = fmt.Sprintf("%s@%s", a.Username, a.Domain)
+ acct = a.Username + "@" + a.Domain
} else {
// this is a local user
acct = a.Username
+ user, err := c.db.GetUserByAccountID(ctx, a.ID)
+ if err != nil {
+ return nil, fmt.Errorf("AccountToAPIAccountPublic: error getting user from database for account id %s: %s", a.ID, err)
+ }
+
+ switch {
+ case *user.Admin:
+ role = model.AccountRoleAdmin
+ case *user.Moderator:
+ role = model.AccountRoleModerator
+ default:
+ role = model.AccountRoleUser
+ }
}
var suspended bool
@@ -222,6 +239,7 @@ func (c *converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A
Suspended: suspended,
CustomCSS: a.CustomCSS,
EnableRSS: *a.EnableRSS,
+ Role: role,
}
c.ensureAvatar(accountFrontend)