Skip to content

Commit 962e6d3

Browse files
author
Phil Hopper
authored
Merge pull request go-gitea#184 from ethantkoenig/ufw_develop
Merge changes from upstream
2 parents b4d5e57 + 9e7a934 commit 962e6d3

File tree

117 files changed

+2043
-829
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+2043
-829
lines changed

.drone.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,10 @@ pipeline:
7373
coverage:
7474
image: plugins/coverage
7575
server: https://coverage.gitea.io
76+
commands:
77+
- make test-coverage
7678
when:
77-
event: [ push, tag, pull_request ]
79+
event: [ push, tag ]
7880

7981
docker:
8082
image: plugins/docker

.drone.yml.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgdGVzdDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSBjbGVhbgogICAgICAtIG1ha2UgZ2VuZXJhdGUKICAgICAgLSBtYWtlIHZldAogICAgICAtIG1ha2UgbGludAogICAgICAtIG1ha2UgdGVzdC12ZW5kb3IKICAgICAgLSBtYWtlIHRlc3QKICAgICAgLSBtYWtlIGJ1aWxkCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3Qtc3FsaXRlOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LXNxbGl0ZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0LW15c3FsOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LW15c3FsCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtcGdzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3QtcGdzcWwKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgc3RhdGljOgogICAgaW1hZ2U6IGthcmFsYWJlL3hnby1sYXRlc3Q6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIGNvdmVyYWdlOgogICAgaW1hZ2U6IHBsdWdpbnMvY292ZXJhZ2UKICAgIHNlcnZlcjogaHR0cHM6Ly9jb3ZlcmFnZS5naXRlYS5pbwogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICcke0RST05FX1RBRyMjdn0nIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJyR7RFJPTkVfQlJBTkNIIyNyZWxlYXNlL3Z9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIHJlbGVhc2UvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJ2xhdGVzdCcgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9UQUcjI3Z9CiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9CUkFOQ0gjI3JlbGVhc2Uvdn0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgcmVsZWFzZS8qIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhL21hc3RlcgogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICBnaXRodWI6CiAgICBpbWFnZTogcGx1Z2lucy9naXRodWItcmVsZWFzZQogICAgZmlsZXM6CiAgICAgIC0gZGlzdC9yZWxlYXNlLyoKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgoKc2VydmljZXM6CiAgbXlzcWw6CiAgICBpbWFnZTogbXlzcWw6NS43CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNWVNRTF9EQVRBQkFTRT10ZXN0CiAgICAgIC0gTVlTUUxfQUxMT1dfRU1QVFlfUEFTU1dPUkQ9eWVzCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHBnc3FsOgogICAgaW1hZ2U6IHBvc3RncmVzOjkuNQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfREI9dGVzdAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQo._gmaEu0hvh55_gmu1f06G5jdsDGIelMW0whjHfe7ovw
1+
eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgdGVzdDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSBjbGVhbgogICAgICAtIG1ha2UgZ2VuZXJhdGUKICAgICAgLSBtYWtlIHZldAogICAgICAtIG1ha2UgbGludAogICAgICAtIG1ha2UgdGVzdC12ZW5kb3IKICAgICAgLSBtYWtlIHRlc3QKICAgICAgLSBtYWtlIGJ1aWxkCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3Qtc3FsaXRlOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LXNxbGl0ZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0LW15c3FsOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LW15c3FsCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtcGdzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3QtcGdzcWwKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgc3RhdGljOgogICAgaW1hZ2U6IGthcmFsYWJlL3hnby1sYXRlc3Q6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIGNvdmVyYWdlOgogICAgaW1hZ2U6IHBsdWdpbnMvY292ZXJhZ2UKICAgIHNlcnZlcjogaHR0cHM6Ly9jb3ZlcmFnZS5naXRlYS5pbwogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LWNvdmVyYWdlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcgXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICcke0RST05FX1RBRyMjdn0nIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJyR7RFJPTkVfQlJBTkNIIyNyZWxlYXNlL3Z9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIHJlbGVhc2UvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJ2xhdGVzdCcgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9UQUcjI3Z9CiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9CUkFOQ0gjI3JlbGVhc2Uvdn0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgcmVsZWFzZS8qIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhL21hc3RlcgogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICBnaXRodWI6CiAgICBpbWFnZTogcGx1Z2lucy9naXRodWItcmVsZWFzZQogICAgZmlsZXM6CiAgICAgIC0gZGlzdC9yZWxlYXNlLyoKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgoKc2VydmljZXM6CiAgbXlzcWw6CiAgICBpbWFnZTogbXlzcWw6NS43CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNWVNRTF9EQVRBQkFTRT10ZXN0CiAgICAgIC0gTVlTUUxfQUxMT1dfRU1QVFlfUEFTU1dPUkQ9eWVzCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHBnc3FsOgogICAgaW1hZ2U6IHBvc3RncmVzOjkuNQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfREI9dGVzdAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQo.-Ok_X36ZDbybPYfEm6Y77BsnlkF5YY3OuZF2dHAy_0E

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ MAINTAINER Thomas Boerger <[email protected]>
33

44
EXPOSE 22 3000
55

6-
RUN apk -U --no-cache add \
6+
RUN apk --no-cache add \
77
su-exec \
88
ca-certificates \
99
sqlite \

Dockerfile.aarch64

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM multiarch/alpine:aarch64-v3.5
22

33
EXPOSE 22 3000
44

5-
RUN apk -U --no-cache add \
5+
RUN apk --no-cache add \
66
su-exec \
77
ca-certificates \
88
sqlite \

Dockerfile.rpi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ MAINTAINER Thomas Boerger <[email protected]>
33

44
EXPOSE 22 3000
55

6-
RUN apk -U --no-cache add \
6+
RUN apk --no-cache add \
77
su-exec \
88
ca-certificates \
99
sqlite \

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,13 @@ lint:
7373
fi
7474
for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;
7575

76-
.PHONY: integrations
77-
integrations: TAGS=bindata sqlite
78-
integrations: build
79-
go test code.gitea.io/gitea/integrations
80-
8176
.PHONY: test
8277
test:
83-
go test -cover $(PACKAGES)
78+
go test $(PACKAGES)
79+
80+
.PHONY: test-coverage
81+
test-coverage:
82+
for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || exit 1; done;
8483

8584
.PHONY: test-vendor
8685
test-vendor:
@@ -96,7 +95,8 @@ test-vendor:
9695
govendor status || exit 1
9796

9897
.PHONY: test-sqlite
99-
test-sqlite: integrations.test
98+
test-sqlite:
99+
go test -c code.gitea.io/gitea/integrations -tags 'sqlite'
100100
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.test
101101

102102
.PHONY: test-mysql
@@ -108,7 +108,7 @@ test-pgsql: integrations.test
108108
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/pgsql.ini ./integrations.test
109109

110110
integrations.test: $(SOURCES)
111-
go test -c code.gitea.io/gitea/integrations -tags 'sqlite'
111+
go test -c code.gitea.io/gitea/integrations
112112

113113
.PHONY: check
114114
check: test

cmd/serv.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,10 @@ func runServ(c *cli.Context) error {
143143
reponame := strings.ToLower(strings.TrimSuffix(rr[1], ".git"))
144144

145145
isWiki := false
146+
unitType := models.UnitTypeCode
146147
if strings.HasSuffix(reponame, ".wiki") {
147148
isWiki = true
149+
unitType = models.UnitTypeWiki
148150
reponame = reponame[:len(reponame)-5]
149151
}
150152

@@ -248,6 +250,12 @@ func runServ(c *cli.Context) error {
248250
user.Name, requestedMode, repoPath)
249251
}
250252

253+
if !repo.CheckUnitUser(user.ID, user.IsAdmin, unitType) {
254+
fail("You do not have allowed for this action",
255+
"User %s does not have allowed access to repository %s 's code",
256+
user.Name, repoPath)
257+
}
258+
251259
os.Setenv(models.EnvPusherName, user.Name)
252260
os.Setenv(models.EnvPusherID, fmt.Sprintf("%d", user.ID))
253261
}

conf/app.ini

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,9 @@ WHITELISTED_URIS =
222222
BLACKLISTED_URIS =
223223

224224
[service]
225+
; Time limit to confirm account/email registration
225226
ACTIVE_CODE_LIVE_MINUTES = 180
227+
; Time limit to confirm forgot password reset process
226228
RESET_PASSWD_CODE_LIVE_MINUTES = 180
227229
; User need to confirm e-mail for registration
228230
REGISTER_EMAIL_CONFIRM = false
@@ -442,6 +444,16 @@ SCHEDULE = @every 24h
442444
; Archives created more than OLDER_THAN ago are subject to deletion
443445
OLDER_THAN = 24h
444446

447+
; Synchronize external user data (only LDAP user synchronization is supported)
448+
[cron.sync_external_users]
449+
; Syncronize external user data when starting server (default false)
450+
RUN_AT_START = false
451+
; Interval as a duration between each synchronization (default every 24h)
452+
SCHEDULE = @every 24h
453+
; Create new users, update existing user data and disable users that are not in external source anymore (default)
454+
; or only create new users if UPDATE_EXISTING is set to false
455+
UPDATE_EXISTING = true
456+
445457
[git]
446458
; Disables highlight of added and removed changes
447459
DISABLE_DIFF_HIGHLIGHT = false

integrations/api_team_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright 2017 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package integrations
6+
7+
import (
8+
"bytes"
9+
"encoding/json"
10+
"fmt"
11+
"net/http"
12+
"testing"
13+
14+
"code.gitea.io/gitea/models"
15+
api "code.gitea.io/sdk/gitea"
16+
17+
"github.com/stretchr/testify/assert"
18+
)
19+
20+
func TestAPITeam(t *testing.T) {
21+
prepareTestEnv(t)
22+
teamUser := models.AssertExistsAndLoadBean(t, &models.TeamUser{}).(*models.TeamUser)
23+
team := models.AssertExistsAndLoadBean(t, &models.Team{ID: teamUser.TeamID}).(*models.Team)
24+
user := models.AssertExistsAndLoadBean(t, &models.User{ID: teamUser.UID}).(*models.User)
25+
26+
session := loginUser(t, user.Name, "password")
27+
url := fmt.Sprintf("/api/v1/teams/%d", teamUser.TeamID)
28+
req, err := http.NewRequest("GET", url, nil)
29+
assert.NoError(t, err)
30+
resp := session.MakeRequest(t, req)
31+
assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
32+
33+
var apiTeam api.Team
34+
decoder := json.NewDecoder(bytes.NewBuffer(resp.Body))
35+
assert.NoError(t, decoder.Decode(&apiTeam))
36+
assert.EqualValues(t, team.ID, apiTeam.ID)
37+
assert.Equal(t, team.Name, apiTeam.Name)
38+
}

integrations/delete_user_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright 2017 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package integrations
6+
7+
import (
8+
"bytes"
9+
"net/http"
10+
"net/url"
11+
"testing"
12+
13+
"code.gitea.io/gitea/models"
14+
15+
"github.com/stretchr/testify/assert"
16+
)
17+
18+
func TestDeleteUser(t *testing.T) {
19+
prepareTestEnv(t)
20+
21+
session := loginUser(t, "user1", "password")
22+
23+
req, err := http.NewRequest("GET", "/admin/users/8", nil)
24+
assert.NoError(t, err)
25+
resp := session.MakeRequest(t, req)
26+
assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
27+
28+
doc, err := NewHtmlParser(resp.Body)
29+
assert.NoError(t, err)
30+
req, err = http.NewRequest("POST", "/admin/users/8/delete",
31+
bytes.NewBufferString(url.Values{
32+
"_csrf": []string{doc.GetInputValueByName("_csrf")},
33+
}.Encode()))
34+
assert.NoError(t, err)
35+
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
36+
resp = session.MakeRequest(t, req)
37+
assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
38+
39+
models.AssertNotExistsBean(t, &models.User{ID: 8})
40+
models.CheckConsistencyFor(t, &models.User{})
41+
}

integrations/integration_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,11 @@ func initIntegrationTest() {
9696
}
9797
defer rows.Close()
9898

99-
if !rows.Next() {
100-
if _, err = db.Exec("CREATE DATABASE testgitea"); err != nil {
101-
log.Fatalf("db.Exec: %v", err)
102-
}
99+
if rows.Next() {
100+
break
101+
}
102+
if _, err = db.Exec("CREATE DATABASE testgitea"); err != nil {
103+
log.Fatalf("db.Exec: %v", err)
103104
}
104105
}
105106
routers.GlobalInit()

integrations/issue_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ import (
1111
"github.com/stretchr/testify/assert"
1212
)
1313

14+
func TestNoLoginViewIssues(t *testing.T) {
15+
prepareTestEnv(t)
16+
17+
req, err := http.NewRequest("GET", "/user2/repo1/issues", nil)
18+
assert.NoError(t, err)
19+
resp := MakeRequest(req)
20+
assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
21+
}
22+
1423
func TestNoLoginViewIssue(t *testing.T) {
1524
prepareTestEnv(t)
1625

integrations/mysql.ini

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ DB_TYPE = mysql
66
HOST = 127.0.0.1:3306
77
NAME = testgitea
88
USER = root
9-
PASSWD =
9+
PASSWD =
1010
SSL_MODE = disable
1111
PATH = data/gitea.db
1212

@@ -26,14 +26,14 @@ OFFLINE_MODE = false
2626
ENABLED = false
2727

2828
[service]
29-
REGISTER_EMAIL_CONFIRM = false
30-
ENABLE_NOTIFY_MAIL = false
31-
DISABLE_REGISTRATION = false
32-
ENABLE_CAPTCHA = false
33-
REQUIRE_SIGNIN_VIEW = false
34-
DEFAULT_KEEP_EMAIL_PRIVATE = false
29+
REGISTER_EMAIL_CONFIRM = false
30+
ENABLE_NOTIFY_MAIL = false
31+
DISABLE_REGISTRATION = false
32+
ENABLE_CAPTCHA = false
33+
REQUIRE_SIGNIN_VIEW = false
34+
DEFAULT_KEEP_EMAIL_PRIVATE = false
3535
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
36-
NO_REPLY_ADDRESS = noreply.example.org
36+
NO_REPLY_ADDRESS = noreply.example.org
3737

3838
[picture]
3939
DISABLE_GRAVATAR = false
@@ -53,5 +53,7 @@ LEVEL = Warn
5353
LEVEL = Info
5454

5555
[security]
56-
INSTALL_LOCK = true
57-
SECRET_KEY = 9pCviYTWSb
56+
INSTALL_LOCK = true
57+
SECRET_KEY = 9pCviYTWSb
58+
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ
59+

0 commit comments

Comments
 (0)