mirror of
https://github.com/go-gitea/gitea.git
synced 2025-02-20 11:43:57 +08:00
Compare commits
4 Commits
96ab400d68
...
1a29ed597c
Author | SHA1 | Date | |
---|---|---|---|
|
1a29ed597c | ||
|
21af8150b7 | ||
|
6a6de5c66d | ||
|
e6f04d7910 |
@ -1701,7 +1701,9 @@ issues.time_estimate_invalid=O formato da estimativa de tempo é inválido
|
|||||||
issues.start_tracking_history=começou a trabalhar %s
|
issues.start_tracking_history=começou a trabalhar %s
|
||||||
issues.tracker_auto_close=O cronómetro será parado automaticamente quando esta questão for fechada
|
issues.tracker_auto_close=O cronómetro será parado automaticamente quando esta questão for fechada
|
||||||
issues.tracking_already_started=`Você já iniciou a contagem de tempo <a href="%s">noutra questão</a>!`
|
issues.tracking_already_started=`Você já iniciou a contagem de tempo <a href="%s">noutra questão</a>!`
|
||||||
|
issues.stop_tracking=Parar cronómetro
|
||||||
issues.stop_tracking_history=trabalhou durante <b>%[1]s</b> %[2]s
|
issues.stop_tracking_history=trabalhou durante <b>%[1]s</b> %[2]s
|
||||||
|
issues.cancel_tracking=Descartar
|
||||||
issues.cancel_tracking_history=`cancelou a contagem de tempo %s`
|
issues.cancel_tracking_history=`cancelou a contagem de tempo %s`
|
||||||
issues.del_time=Eliminar este registo de tempo
|
issues.del_time=Eliminar este registo de tempo
|
||||||
issues.add_time_history=adicionou <b>%[1]s</b> de tempo gasto %[2]s
|
issues.add_time_history=adicionou <b>%[1]s</b> de tempo gasto %[2]s
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
activities_model "code.gitea.io/gitea/models/activities"
|
activities_model "code.gitea.io/gitea/models/activities"
|
||||||
|
"code.gitea.io/gitea/models/organization"
|
||||||
"code.gitea.io/gitea/models/renderhelper"
|
"code.gitea.io/gitea/models/renderhelper"
|
||||||
"code.gitea.io/gitea/modules/markup/markdown"
|
"code.gitea.io/gitea/modules/markup/markdown"
|
||||||
"code.gitea.io/gitea/services/context"
|
"code.gitea.io/gitea/services/context"
|
||||||
@ -28,12 +29,23 @@ func ShowUserFeedAtom(ctx *context.Context) {
|
|||||||
// showUserFeed show user activity as RSS / Atom feed
|
// showUserFeed show user activity as RSS / Atom feed
|
||||||
func showUserFeed(ctx *context.Context, formatType string) {
|
func showUserFeed(ctx *context.Context, formatType string) {
|
||||||
includePrivate := ctx.IsSigned && (ctx.Doer.IsAdmin || ctx.Doer.ID == ctx.ContextUser.ID)
|
includePrivate := ctx.IsSigned && (ctx.Doer.IsAdmin || ctx.Doer.ID == ctx.ContextUser.ID)
|
||||||
|
isOrganisation := ctx.ContextUser.IsOrganization()
|
||||||
|
if ctx.IsSigned && isOrganisation && !includePrivate {
|
||||||
|
// When feed is requested by a member of the
|
||||||
|
// organization, include the private repo's the member
|
||||||
|
// has access to.
|
||||||
|
isOrgMember, err := organization.IsOrganizationMember(ctx, ctx.ContextUser.ID, ctx.Doer.ID)
|
||||||
|
if err != nil {
|
||||||
|
ctx.ServerError("IsOrganizationMember", err)
|
||||||
|
}
|
||||||
|
includePrivate = isOrgMember
|
||||||
|
}
|
||||||
|
|
||||||
actions, _, err := feed_service.GetFeeds(ctx, activities_model.GetFeedsOptions{
|
actions, _, err := feed_service.GetFeeds(ctx, activities_model.GetFeedsOptions{
|
||||||
RequestedUser: ctx.ContextUser,
|
RequestedUser: ctx.ContextUser,
|
||||||
Actor: ctx.Doer,
|
Actor: ctx.Doer,
|
||||||
IncludePrivate: includePrivate,
|
IncludePrivate: includePrivate,
|
||||||
OnlyPerformedBy: !ctx.ContextUser.IsOrganization(),
|
OnlyPerformedBy: !isOrganisation,
|
||||||
IncludeDeleted: false,
|
IncludeDeleted: false,
|
||||||
Date: ctx.FormString("date"),
|
Date: ctx.FormString("date"),
|
||||||
})
|
})
|
||||||
|
37
routers/web/feed/profile_test.go
Normal file
37
routers/web/feed/profile_test.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package feed_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
|
"code.gitea.io/gitea/routers/web/feed"
|
||||||
|
"code.gitea.io/gitea/services/contexttest"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
unittest.MainTest(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckGetOrgFeedsAsOrgMember(t *testing.T) {
|
||||||
|
unittest.PrepareTestEnv(t)
|
||||||
|
ctx, resp := contexttest.MockContext(t, "org3.atom")
|
||||||
|
ctx.ContextUser = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3})
|
||||||
|
contexttest.LoadUser(t, ctx, 2)
|
||||||
|
ctx.IsSigned = true
|
||||||
|
|
||||||
|
feed.ShowUserFeedAtom(ctx)
|
||||||
|
assert.Contains(t, resp.Body.String(), "<entry>") // Should contain 1 private entry
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCheckGetOrgFeedsAsNonOrgMember(t *testing.T) {
|
||||||
|
unittest.PrepareTestEnv(t)
|
||||||
|
ctx, resp := contexttest.MockContext(t, "org3.atom")
|
||||||
|
ctx.ContextUser = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3})
|
||||||
|
contexttest.LoadUser(t, ctx, 5)
|
||||||
|
ctx.IsSigned = true
|
||||||
|
|
||||||
|
feed.ShowUserFeedAtom(ctx)
|
||||||
|
assert.NotContains(t, resp.Body.String(), "<entry>") // Should not contain any entries
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user