|
|
@@ -20,14 +20,18 @@ type Context struct {
|
|
|
|
|
|
Session session.Store
|
|
|
|
|
|
- IsSignedIn bool
|
|
|
+ IsSignedIn bool
|
|
|
+ HasAnonymousAccess bool
|
|
|
}
|
|
|
|
|
|
func GetContextHandler() macaron.Handler {
|
|
|
return func(c *macaron.Context, sess session.Store) {
|
|
|
ctx := &Context{
|
|
|
- Context: c,
|
|
|
- Session: sess,
|
|
|
+ Context: c,
|
|
|
+ Session: sess,
|
|
|
+ SignedInUser: &m.SignedInUser{},
|
|
|
+ IsSignedIn: false,
|
|
|
+ HasAnonymousAccess: false,
|
|
|
}
|
|
|
|
|
|
// try get account id from request
|
|
|
@@ -36,8 +40,8 @@ func GetContextHandler() macaron.Handler {
|
|
|
if err := bus.Dispatch(&query); err != nil {
|
|
|
log.Error(3, "Failed to get user by id, %v, %v", userId, err)
|
|
|
} else {
|
|
|
- ctx.IsSignedIn = true
|
|
|
ctx.SignedInUser = query.Result
|
|
|
+ ctx.IsSignedIn = true
|
|
|
}
|
|
|
} else if key := getApiKey(ctx); key != "" {
|
|
|
// Try API Key auth
|
|
|
@@ -56,6 +60,19 @@ func GetContextHandler() macaron.Handler {
|
|
|
ctx.ApiKeyId = keyInfo.Id
|
|
|
ctx.AccountId = keyInfo.AccountId
|
|
|
}
|
|
|
+ } else if setting.AnonymousEnabled {
|
|
|
+ accountQuery := m.GetAccountByNameQuery{Name: setting.AnonymousAccountName}
|
|
|
+ if err := bus.Dispatch(&accountQuery); err != nil {
|
|
|
+ if err == m.ErrAccountNotFound {
|
|
|
+ log.Error(3, "Anonymous access account name does not exist", nil)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ctx.IsSignedIn = false
|
|
|
+ ctx.HasAnonymousAccess = true
|
|
|
+ ctx.SignedInUser = &m.SignedInUser{}
|
|
|
+ ctx.AccountRole = m.RoleType(setting.AnonymousAccountRole)
|
|
|
+ ctx.AccountId = accountQuery.Result.Id
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
c.Map(ctx)
|