Skip to content

Commit f36ae60

Browse files
authored
Merge branch 'master' into enable-race-detector-in-ci
2 parents 9c47dc8 + a60d3cb commit f36ae60

File tree

6 files changed

+70
-29
lines changed

6 files changed

+70
-29
lines changed

docs/content/doc/help/faq.en-us.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ Also see [Support Options]({{< relref "doc/help/seek-help.en-us.md" >}})
2828
* [What is Swagger?](#what-is-swagger)
2929
* [Adjusting your server for public/private use](#adjusting-your-server-for-public-private-use)
3030
* [Preventing spammers](#preventing-spammers)
31-
* [Only allow/block certain email domains](#only-allow-block-certain-email-domains)
31+
* [Only allow certain email domains](#only-allow-certain-email-domains)
32+
* [Only allow/block certain OpenID providers](#only-allow-block-certain-openid-providers)
3233
* [Issue only users](#issue-only-users)
3334
* [Enable Fail2ban](#enable-fail2ban)
3435
* [Adding custom themes](#how-to-add-use-custom-themes)
@@ -133,8 +134,11 @@ There are multiple things you can combine to prevent spammers.
133134
2. Setting `ENABLE_CAPTCHA` to `true` in your `app.ini` and properly configuring `RECAPTCHA_SECRET` and `RECAPTCHA_SITEKEY`
134135
3. Settings `DISABLE_REGISTRATION` to `true` and creating new users via the [CLI]({{< relref "doc/usage/command-line.en-us.md" >}}), [API]({{< relref "doc/advanced/api-usage.en-us.md" >}}), or Gitea's Admin UI
135136

136-
### Only allow/block certain email domains
137-
If using OpenID, you can configure `WHITELISTED_URIS` or `BLACKLISTED_URIS` in your `app.ini`
137+
### Only allow certain email domains
138+
You can configure `EMAIL_DOMAIN_WHITELIST` in your app.ini under `[service]`
139+
140+
### Only allow/block certain OpenID providers
141+
You can configure `WHITELISTED_URIS` or `BLACKLISTED_URIS` under `[openid]` in your `app.ini`
138142
**NOTE:** whitelisted takes precedence, so if it is non-blank then blacklisted is ignored
139143

140144
### Issue only users

integrations/testlogger.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"os"
1111
"runtime"
1212
"strings"
13+
"sync"
1314
"testing"
1415

1516
"code.gitea.io/gitea/modules/log"
@@ -25,11 +26,21 @@ type TestLogger struct {
2526
var writerCloser = &testLoggerWriterCloser{}
2627

2728
type testLoggerWriterCloser struct {
29+
sync.RWMutex
2830
t testing.TB
2931
}
3032

33+
func (w *testLoggerWriterCloser) setT(t *testing.TB) {
34+
w.Lock()
35+
w.t = *t
36+
w.Unlock()
37+
}
38+
3139
func (w *testLoggerWriterCloser) Write(p []byte) (int, error) {
32-
if w.t != nil {
40+
w.RLock()
41+
t := w.t
42+
w.RUnlock()
43+
if t != nil {
3344
if len(p) > 0 && p[len(p)-1] == '\n' {
3445
p = p[:len(p)-1]
3546
}
@@ -54,7 +65,7 @@ func (w *testLoggerWriterCloser) Write(p []byte) (int, error) {
5465
}
5566
}()
5667

57-
w.t.Log(string(p))
68+
t.Log(string(p))
5869
return len(p), nil
5970
}
6071
return len(p), nil
@@ -77,7 +88,7 @@ func PrintCurrentTest(t testing.TB, skip ...int) {
7788
} else {
7889
fmt.Fprintf(os.Stdout, "=== %s (%s:%d)\n", t.Name(), strings.TrimPrefix(filename, prefix), line)
7990
}
80-
writerCloser.t = t
91+
writerCloser.setT(&t)
8192
}
8293

8394
// Printf takes a format and args and prints the string to os.Stdout

modules/log/log.go

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,35 @@ import (
88
"os"
99
"runtime"
1010
"strings"
11+
"sync"
1112
)
1213

14+
type loggerMap struct {
15+
sync.Map
16+
}
17+
18+
func (m *loggerMap) Load(k string) (*Logger, bool) {
19+
v, ok := m.Map.Load(k)
20+
if !ok {
21+
return nil, false
22+
}
23+
l, ok := v.(*Logger)
24+
return l, ok
25+
}
26+
27+
func (m *loggerMap) Store(k string, v *Logger) {
28+
m.Map.Store(k, v)
29+
}
30+
31+
func (m *loggerMap) Delete(k string) {
32+
m.Map.Delete(k)
33+
}
34+
1335
var (
1436
// DEFAULT is the name of the default logger
1537
DEFAULT = "default"
1638
// NamedLoggers map of named loggers
17-
NamedLoggers = make(map[string]*Logger)
39+
NamedLoggers loggerMap
1840
prefix string
1941
)
2042

@@ -25,33 +47,33 @@ func NewLogger(bufLen int64, name, provider, config string) *Logger {
2547
CriticalWithSkip(1, "Unable to create default logger: %v", err)
2648
panic(err)
2749
}
28-
return NamedLoggers[DEFAULT]
50+
l, _ := NamedLoggers.Load(DEFAULT)
51+
return l
2952
}
3053

3154
// NewNamedLogger creates a new named logger for a given configuration
3255
func NewNamedLogger(name string, bufLen int64, subname, provider, config string) error {
33-
logger, ok := NamedLoggers[name]
56+
logger, ok := NamedLoggers.Load(name)
3457
if !ok {
3558
logger = newLogger(name, bufLen)
36-
37-
NamedLoggers[name] = logger
59+
NamedLoggers.Store(name, logger)
3860
}
3961

4062
return logger.SetLogger(subname, provider, config)
4163
}
4264

4365
// DelNamedLogger closes and deletes the named logger
4466
func DelNamedLogger(name string) {
45-
l, ok := NamedLoggers[name]
67+
l, ok := NamedLoggers.Load(name)
4668
if ok {
47-
delete(NamedLoggers, name)
69+
NamedLoggers.Delete(name)
4870
l.Close()
4971
}
5072
}
5173

5274
// DelLogger removes the named sublogger from the default logger
5375
func DelLogger(name string) error {
54-
logger := NamedLoggers[DEFAULT]
76+
logger, _ := NamedLoggers.Load(DEFAULT)
5577
found, err := logger.DelLogger(name)
5678
if !found {
5779
Trace("Log %s not found, no need to delete", name)
@@ -61,21 +83,24 @@ func DelLogger(name string) error {
6183

6284
// GetLogger returns either a named logger or the default logger
6385
func GetLogger(name string) *Logger {
64-
logger, ok := NamedLoggers[name]
86+
logger, ok := NamedLoggers.Load(name)
6587
if ok {
6688
return logger
6789
}
68-
return NamedLoggers[DEFAULT]
90+
logger, _ = NamedLoggers.Load(DEFAULT)
91+
return logger
6992
}
7093

7194
// GetLevel returns the minimum logger level
7295
func GetLevel() Level {
73-
return NamedLoggers[DEFAULT].GetLevel()
96+
l, _ := NamedLoggers.Load(DEFAULT)
97+
return l.GetLevel()
7498
}
7599

76100
// GetStacktraceLevel returns the minimum logger level
77101
func GetStacktraceLevel() Level {
78-
return NamedLoggers[DEFAULT].GetStacktraceLevel()
102+
l, _ := NamedLoggers.Load(DEFAULT)
103+
return l.GetStacktraceLevel()
79104
}
80105

81106
// Trace records trace log
@@ -169,18 +194,18 @@ func IsFatal() bool {
169194

170195
// Close closes all the loggers
171196
func Close() {
172-
l, ok := NamedLoggers[DEFAULT]
197+
l, ok := NamedLoggers.Load(DEFAULT)
173198
if !ok {
174199
return
175200
}
176-
delete(NamedLoggers, DEFAULT)
201+
NamedLoggers.Delete(DEFAULT)
177202
l.Close()
178203
}
179204

180205
// Log a message with defined skip and at logging level
181206
// A skip of 0 refers to the caller of this command
182207
func Log(skip int, level Level, format string, v ...interface{}) {
183-
l, ok := NamedLoggers[DEFAULT]
208+
l, ok := NamedLoggers.Load(DEFAULT)
184209
if ok {
185210
l.Log(skip+1, level, format, v...)
186211
}
@@ -195,7 +220,8 @@ type LoggerAsWriter struct {
195220
// NewLoggerAsWriter creates a Writer representation of the logger with setable log level
196221
func NewLoggerAsWriter(level string, ourLoggers ...*Logger) *LoggerAsWriter {
197222
if len(ourLoggers) == 0 {
198-
ourLoggers = []*Logger{NamedLoggers[DEFAULT]}
223+
l, _ := NamedLoggers.Load(DEFAULT)
224+
ourLoggers = []*Logger{l}
199225
}
200226
l := &LoggerAsWriter{
201227
ourLoggers: ourLoggers,

modules/log/log_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func TestNewNamedLogger(t *testing.T) {
143143
level := INFO
144144
err := NewNamedLogger("test", 0, "console", "console", fmt.Sprintf(`{"level":"%s"}`, level.String()))
145145
assert.NoError(t, err)
146-
logger := NamedLoggers["test"]
146+
logger, _ := NamedLoggers.Load("test")
147147
assert.Equal(t, level, logger.GetLevel())
148148

149149
written, closed := baseConsoleTest(t, logger)

options/locale/locale_pt-BR.ini

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,6 +1357,11 @@ diff.whitespace_ignore_at_eol=Ignorar alterações com espaço em branco no fina
13571357
diff.stats_desc=<strong> %d arquivos alterados</strong> com <strong>%d adições</strong> e <strong>%d exclusões</strong>
13581358
diff.bin=BIN
13591359
diff.view_file=Ver arquivo
1360+
diff.file_before=Antes
1361+
diff.file_after=Depois
1362+
diff.file_image_width=Largura
1363+
diff.file_image_height=Altura
1364+
diff.file_byte_size=Tamanho
13601365
diff.file_suppressed=Diferenças do arquivo suprimidas por serem muito extensas
13611366
diff.too_many_files=Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff
13621367
diff.comment.placeholder=Deixe um comentário
@@ -1705,6 +1710,7 @@ auths.tip.google_plus=Obter credenciais de cliente OAuth2 do console de API do G
17051710
auths.tip.openid_connect=Use o OpenID Connect Discovery URL (<servidor>/.well-known/openid-configuration) para especificar os endpoints
17061711
auths.tip.twitter=Vá em https://dev.twitter.com/apps, crie um aplicativo e certifique-se de que está habilitada a opção “Allow this application to be used to Sign in with Twitter“
17071712
auths.tip.discord=Cadastrar um novo aplicativo em https://discordapp.com/developers/applications/me
1713+
auths.tip.gitea=Cadastrar um novo aplicativo OAuth2. Guia pode ser encontrado em https://docs.gitea.io/en-us/oauth2-provider/
17081714
auths.edit=Editar fonte de autenticação
17091715
auths.activated=Esta fonte de autenticação está ativada
17101716
auths.new_success=A autenticação '%s' foi adicionada.

routers/api/v1/user/app.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ func ListAccessTokens(ctx *context.APIContext) {
3535

3636
apiTokens := make([]*api.AccessToken, len(tokens))
3737
for i := range tokens {
38-
if tokens[i].Name == "drone" {
39-
tokens[i].Name = "drone-legacy-use-oauth2-instead"
40-
}
4138
apiTokens[i] = &api.AccessToken{
4239
ID: tokens[i].ID,
4340
Name: tokens[i].Name,
@@ -78,9 +75,6 @@ func CreateAccessToken(ctx *context.APIContext, form api.CreateAccessTokenOption
7875
UID: ctx.User.ID,
7976
Name: form.Name,
8077
}
81-
if t.Name == "drone" {
82-
t.Name = "drone-legacy-use-oauth2-instead"
83-
}
8478
if err := models.NewAccessToken(t); err != nil {
8579
ctx.Error(500, "NewAccessToken", err)
8680
return

0 commit comments

Comments
 (0)