accounts running

This commit is contained in:
A.Unger
2020-09-18 14:51:07 +02:00
parent 1a0ddd2190
commit fcca9faa81
54 changed files with 466 additions and 444 deletions
+1 -1
View File
@@ -180,7 +180,7 @@ The following sections list the changes in ocis-accounts 0.3.0.
adjusts ocis-accounts accordingly. adjusts ocis-accounts accordingly.
https://github.com/owncloud/ocis/accounts/pull/87 https://github.com/owncloud/ocis/accounts/pull/87
https://github.com/owncloud/ocis-settings/pull/46 https://github.com/owncloud/ocis/settings/pull/46
* Change - Add permissions for language to default roles: [#88](https://github.com/owncloud/ocis/accounts/pull/88) * Change - Add permissions for language to default roles: [#88](https://github.com/owncloud/ocis/accounts/pull/88)
@@ -3,4 +3,4 @@ Change: Adapt to new ocis-settings data model
ocis-settings introduced UUIDs and less verbose endpoint and message type names. This PR adjusts ocis-accounts accordingly. ocis-settings introduced UUIDs and less verbose endpoint and message type names. This PR adjusts ocis-accounts accordingly.
https://github.com/owncloud/ocis/accounts/pull/87 https://github.com/owncloud/ocis/accounts/pull/87
https://github.com/owncloud/ocis-settings/pull/46 https://github.com/owncloud/ocis/settings/pull/46
+7 -3
View File
@@ -15,8 +15,8 @@ require (
github.com/oklog/run v1.1.0 github.com/oklog/run v1.1.0
github.com/olekukonko/tablewriter v0.0.4 github.com/olekukonko/tablewriter v0.0.4
github.com/owncloud/ocis v1.0.0-rc1 // indirect github.com/owncloud/ocis v1.0.0-rc1 // indirect
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada github.com/owncloud/ocis/ocis-pkg v0.0.0-20200918114005-1a0ddd2190ee
github.com/owncloud/ocis-settings v0.3.2-0.20200903035407-ad5de8264f91 github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee
github.com/restic/calens v0.2.0 github.com/restic/calens v0.2.0
github.com/rs/zerolog v1.19.0 github.com/rs/zerolog v1.19.0
github.com/spf13/viper v1.7.0 github.com/spf13/viper v1.7.0
@@ -27,4 +27,8 @@ require (
google.golang.org/protobuf v1.25.0 google.golang.org/protobuf v1.25.0
) )
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 replace (
github.com/owncloud/ocis/ocis-pkg => ../ocis-pkg
github.com/owncloud/ocis/settings => ../settings
google.golang.org/grpc => google.golang.org/grpc v1.26.0
)
+4
View File
@@ -1212,6 +1212,7 @@ github.com/owncloud/flaex v0.2.0 h1:3FLf8oyMgA6HLK7w4+VJ5N1oVA8G7MptLCVjfxxIaww=
github.com/owncloud/flaex v0.2.0/go.mod h1:jip86t4OVURJTf8CM/0e2qcji/Y4NG3l2lR8kex4JWw= github.com/owncloud/flaex v0.2.0/go.mod h1:jip86t4OVURJTf8CM/0e2qcji/Y4NG3l2lR8kex4JWw=
github.com/owncloud/ocis v1.0.0-rc1 h1:5pxFes3myh5cwfvyZ0l6akN9wneSc9UxB5Veg2Xr1Rc= github.com/owncloud/ocis v1.0.0-rc1 h1:5pxFes3myh5cwfvyZ0l6akN9wneSc9UxB5Veg2Xr1Rc=
github.com/owncloud/ocis v1.0.0-rc1/go.mod h1:TmghyYp0UgfxWlJobYshsOzJ3i99+OaTYxmbiHPIxDo= github.com/owncloud/ocis v1.0.0-rc1/go.mod h1:TmghyYp0UgfxWlJobYshsOzJ3i99+OaTYxmbiHPIxDo=
github.com/owncloud/ocis v1.0.0-rc1.0.20200918114005-1a0ddd2190ee h1:EXT7AIO8bc6HEcnvybGQUkzRXin2KagJBpuv12oZksM=
github.com/owncloud/ocis-accounts v0.1.2-0.20200618163128-aa8ae58dd95e/go.mod h1:ohb58AUSUgq+kPOFAjy1s1k5Bi33YtPg45qOOPsepeM= github.com/owncloud/ocis-accounts v0.1.2-0.20200618163128-aa8ae58dd95e/go.mod h1:ohb58AUSUgq+kPOFAjy1s1k5Bi33YtPg45qOOPsepeM=
github.com/owncloud/ocis-accounts v0.1.2-0.20200710152724-fa35a81beb2f/go.mod h1:wxo2B5EoTQlf3ryDeOTR/RAs3z6IHkllu1CvBxrLf1A= github.com/owncloud/ocis-accounts v0.1.2-0.20200710152724-fa35a81beb2f/go.mod h1:wxo2B5EoTQlf3ryDeOTR/RAs3z6IHkllu1CvBxrLf1A=
github.com/owncloud/ocis-accounts v0.4.2-0.20200828150703-2ca83cf4ac20/go.mod h1:R2mNcvDvma7D7n1yxpLHIJR9dHUx4As7QfiJlD8e9DE= github.com/owncloud/ocis-accounts v0.4.2-0.20200828150703-2ca83cf4ac20/go.mod h1:R2mNcvDvma7D7n1yxpLHIJR9dHUx4As7QfiJlD8e9DE=
@@ -1243,6 +1244,7 @@ github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200527082518-5641fa4a4c8c/go.mod h1:s
github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200602070144-cd0620668170/go.mod h1:s894msGwDsULmsROHkbsXFCP/eSqDcteDFUntZOiJdc= github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200602070144-cd0620668170/go.mod h1:s894msGwDsULmsROHkbsXFCP/eSqDcteDFUntZOiJdc=
github.com/owncloud/ocis-pkg/v2 v2.3.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE= github.com/owncloud/ocis-pkg/v2 v2.3.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE=
github.com/owncloud/ocis-pkg/v2 v2.4.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE= github.com/owncloud/ocis-pkg/v2 v2.4.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE=
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200828095914-d3b859484b2b h1:PRw0b4abdrDKloh417qPsS5lkB/bjJ3Rc4txzHx/hBg=
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200828095914-d3b859484b2b/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw= github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200828095914-d3b859484b2b/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw=
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada h1:iVknnuT/z8QCAeBpHEcbI/AiQ9FOBvF5aOAFT3TIM+I= github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada h1:iVknnuT/z8QCAeBpHEcbI/AiQ9FOBvF5aOAFT3TIM+I=
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw= github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw=
@@ -1268,6 +1270,8 @@ github.com/owncloud/ocis-thumbnails v0.3.0 h1:As0wiSXwDp9JgK/FPY5h1J9HXEow9EFefg
github.com/owncloud/ocis-thumbnails v0.3.0/go.mod h1:97QGLawjcpbhSIscbPXJAytE6vAQi5Y+Ov55h8/mq+0= github.com/owncloud/ocis-thumbnails v0.3.0/go.mod h1:97QGLawjcpbhSIscbPXJAytE6vAQi5Y+Ov55h8/mq+0=
github.com/owncloud/ocis-webdav v0.1.1 h1:4UN9GefQiH6RGgq2+tiYFLNw8ql6luXYH0NdCJg2n/U= github.com/owncloud/ocis-webdav v0.1.1 h1:4UN9GefQiH6RGgq2+tiYFLNw8ql6luXYH0NdCJg2n/U=
github.com/owncloud/ocis-webdav v0.1.1/go.mod h1:E9OlGfvlxf1NHFOvFgbHWBe7/pw4Gqy/JaSJFEHQSzg= github.com/owncloud/ocis-webdav v0.1.1/go.mod h1:E9OlGfvlxf1NHFOvFgbHWBe7/pw4Gqy/JaSJFEHQSzg=
github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee h1:LaKP3hCTJ6WwB3W40m5UhddvokMRIbOXrjogxON4jAI=
github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee/go.mod h1:5w91idmyOd8LgYK3eGuqsFBOfVJnSDeEp7S6dHheW14=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"path" "path"
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
// Fake the import to make the dep tree happy. // Fake the import to make the dep tree happy.
_ "golang.org/x/net/context" _ "golang.org/x/net/context"
+1 -1
View File
@@ -2,7 +2,7 @@ package assets
import ( import (
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/version" "github.com/owncloud/ocis/accounts/pkg/version"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/spf13/viper" "github.com/spf13/viper"
) )
@@ -16,8 +16,8 @@ import (
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/proto/v0"
svc "github.com/owncloud/ocis/accounts/pkg/service/v0" svc "github.com/owncloud/ocis/accounts/pkg/service/v0"
"github.com/owncloud/ocis-pkg/v2/service/grpc" "github.com/owncloud/ocis/ocis-pkg/service/grpc"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"google.golang.org/genproto/protobuf/field_mask" "google.golang.org/genproto/protobuf/field_mask"
"google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/timestamppb"
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/metrics" "github.com/owncloud/ocis/accounts/pkg/metrics"
svc "github.com/owncloud/ocis/accounts/pkg/service/v0" svc "github.com/owncloud/ocis/accounts/pkg/service/v0"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+1 -1
View File
@@ -2,7 +2,7 @@ package grpc
import ( import (
"github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/proto/v0"
"github.com/owncloud/ocis-pkg/v2/service/grpc" "github.com/owncloud/ocis/ocis-pkg/service/grpc"
) )
// Server initializes a new go-micro service ready to run // Server initializes a new go-micro service ready to run
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/metrics" "github.com/owncloud/ocis/accounts/pkg/metrics"
svc "github.com/owncloud/ocis/accounts/pkg/service/v0" svc "github.com/owncloud/ocis/accounts/pkg/service/v0"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+3 -3
View File
@@ -5,9 +5,9 @@ import (
"github.com/owncloud/ocis/accounts/pkg/assets" "github.com/owncloud/ocis/accounts/pkg/assets"
"github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/proto/v0"
"github.com/owncloud/ocis/accounts/pkg/version" "github.com/owncloud/ocis/accounts/pkg/version"
"github.com/owncloud/ocis-pkg/v2/account" "github.com/owncloud/ocis/ocis-pkg/account"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/owncloud/ocis-pkg/v2/service/http" "github.com/owncloud/ocis/ocis-pkg/service/http"
) )
// Server initializes the http service and server. // Server initializes the http service and server.
+3 -3
View File
@@ -19,9 +19,9 @@ import (
merrors "github.com/micro/go-micro/v2/errors" merrors "github.com/micro/go-micro/v2/errors"
"github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/proto/v0"
"github.com/owncloud/ocis/accounts/pkg/provider" "github.com/owncloud/ocis/accounts/pkg/provider"
"github.com/owncloud/ocis-pkg/v2/roles" "github.com/owncloud/ocis/ocis-pkg/roles"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
settings_svc "github.com/owncloud/ocis-settings/pkg/service/v0" settings_svc "github.com/owncloud/ocis/settings/pkg/service/v0"
"github.com/rs/zerolog" "github.com/rs/zerolog"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
"google.golang.org/genproto/protobuf/field_mask" "google.golang.org/genproto/protobuf/field_mask"
@@ -1,366 +1,366 @@
package service package service
//
import ( //import (
"context" // "context"
"encoding/json" // "encoding/json"
"log" // "log"
"net/http" // "net/http"
"os" // "os"
"testing" // "testing"
"time" // "time"
//
"github.com/golang/protobuf/ptypes/empty" // "github.com/golang/protobuf/ptypes/empty"
"github.com/micro/go-micro/v2/client" // "github.com/micro/go-micro/v2/client"
merrors "github.com/micro/go-micro/v2/errors" // merrors "github.com/micro/go-micro/v2/errors"
"github.com/micro/go-micro/v2/metadata" // "github.com/micro/go-micro/v2/metadata"
"github.com/owncloud/ocis/accounts/pkg/config" // "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/proto/v0" // "github.com/owncloud/ocis/accounts/pkg/proto/v0"
olog "github.com/owncloud/ocis-pkg/v2/log" // olog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis-pkg/v2/middleware" // "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/owncloud/ocis-pkg/v2/roles" // "github.com/owncloud/ocis/ocis-pkg/roles"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" // settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
ssvc "github.com/owncloud/ocis-settings/pkg/service/v0" // ssvc "github.com/owncloud/ocis/settings/pkg/service/v0"
"github.com/stretchr/testify/assert" // "github.com/stretchr/testify/assert"
) //)
//
const dataPath = "/var/tmp/ocis-accounts-tests" //const dataPath = "/var/tmp/ocis-accounts-tests"
//
var ( //var (
roleServiceMock settings.RoleService // roleServiceMock settings.RoleService
s *Service // s *Service
) //)
//
func init() { //func init() {
cfg := config.New() // cfg := config.New()
cfg.Server.Name = "accounts" // cfg.Server.Name = "accounts"
cfg.Server.AccountsDataPath = dataPath // cfg.Server.AccountsDataPath = dataPath
logger := olog.NewLogger(olog.Color(true), olog.Pretty(true)) // logger := olog.NewLogger(olog.Color(true), olog.Pretty(true))
roleServiceMock = buildRoleServiceMock() // roleServiceMock = buildRoleServiceMock()
roleManager := roles.NewManager( // roleManager := roles.NewManager(
roles.Logger(logger), // roles.Logger(logger),
roles.RoleService(roleServiceMock), // roles.RoleService(roleServiceMock),
roles.CacheTTL(time.Hour), // roles.CacheTTL(time.Hour),
roles.CacheSize(1024), // roles.CacheSize(1024),
) // )
s, _ = New( // s, _ = New(
Logger(logger), // Logger(logger),
Config(cfg), // Config(cfg),
RoleService(roleServiceMock), // RoleService(roleServiceMock),
RoleManager(&roleManager), // RoleManager(&roleManager),
) // )
} //}
//
func setup() (teardown func()) { //func setup() (teardown func()) {
return func() { // return func() {
if err := os.RemoveAll(dataPath); err != nil { // if err := os.RemoveAll(dataPath); err != nil {
log.Printf("could not delete data root: %s", dataPath) // log.Printf("could not delete data root: %s", dataPath)
} else { // } else {
log.Println("data root deleted") // log.Println("data root deleted")
} // }
} // }
} //}
//
// TestPermissionsListAccounts checks permission handling on ListAccounts //// TestPermissionsListAccounts checks permission handling on ListAccounts
func TestPermissionsListAccounts(t *testing.T) { //func TestPermissionsListAccounts(t *testing.T) {
var scenarios = []struct { // var scenarios = []struct {
name string // name string
roleIDs []string // roleIDs []string
query string // query string
permissionError error // permissionError error
}{ // }{
// TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged // // TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged
// replace with two tests: // // replace with two tests:
// 1: "ListAccounts fails with 403 when roleIDs don't exist in context" // // 1: "ListAccounts fails with 403 when roleIDs don't exist in context"
// 2: "ListAccounts fails with 403 when ('no admin role in context' AND 'empty query')" // // 2: "ListAccounts fails with 403 when ('no admin role in context' AND 'empty query')"
{ // {
"ListAccounts succeeds when no roleIDs in context", // "ListAccounts succeeds when no roleIDs in context",
nil, // nil,
"", // "",
nil, // nil,
}, // },
{ // {
"ListAccounts fails when no admin roleID in context", // "ListAccounts fails when no admin roleID in context",
[]string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest}, // []string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest},
"", // "",
merrors.Forbidden(s.id, "no permission for ListAccounts"), // merrors.Forbidden(s.id, "no permission for ListAccounts"),
}, // },
{ // {
"ListAccounts succeeds when admin roleID in context", // "ListAccounts succeeds when admin roleID in context",
[]string{ssvc.BundleUUIDRoleAdmin}, // []string{ssvc.BundleUUIDRoleAdmin},
"", // "",
nil, // nil,
}, // },
} // }
//
for _, scenario := range scenarios { // for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) { // t.Run(scenario.name, func(t *testing.T) {
teardown := setup() // teardown := setup()
defer teardown() // defer teardown()
//
ctx := buildTestCtx(t, scenario.roleIDs) // ctx := buildTestCtx(t, scenario.roleIDs)
request := &proto.ListAccountsRequest{ // request := &proto.ListAccountsRequest{
Query: scenario.query, // Query: scenario.query,
} // }
response := &proto.ListAccountsResponse{} // response := &proto.ListAccountsResponse{}
err := s.ListAccounts(ctx, request, response) // err := s.ListAccounts(ctx, request, response)
if scenario.permissionError != nil { // if scenario.permissionError != nil {
assert.Equal(t, scenario.permissionError, err) // assert.Equal(t, scenario.permissionError, err)
} else if err != nil { // } else if err != nil {
// we are only checking permissions here, so just check that the error code is not 403 // // we are only checking permissions here, so just check that the error code is not 403
merr := merrors.FromError(err) // merr := merrors.FromError(err)
assert.NotEqual(t, http.StatusForbidden, merr.GetCode()) // assert.NotEqual(t, http.StatusForbidden, merr.GetCode())
} // }
}) // })
} // }
} //}
//
// TestPermissionsGetAccount checks permission handling on GetAccount //// TestPermissionsGetAccount checks permission handling on GetAccount
// TODO: remove this test function entirely, when https://github.com/owncloud/ocis/accounts/pull/111 is merged. GetAccount will not have permission checks for the time being. //// TODO: remove this test function entirely, when https://github.com/owncloud/ocis/accounts/pull/111 is merged. GetAccount will not have permission checks for the time being.
func TestPermissionsGetAccount(t *testing.T) { //func TestPermissionsGetAccount(t *testing.T) {
var scenarios = []struct { // var scenarios = []struct {
name string // name string
roleIDs []string // roleIDs []string
permissionError error // permissionError error
}{ // }{
{ // {
"GetAccount succeeds when no role IDs in context", // "GetAccount succeeds when no role IDs in context",
nil, // nil,
nil, // nil,
}, // },
{ // {
"GetAccount fails when no admin roleID in context", // "GetAccount fails when no admin roleID in context",
[]string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest}, // []string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest},
merrors.Forbidden(s.id, "no permission for GetAccount"), // merrors.Forbidden(s.id, "no permission for GetAccount"),
}, // },
{ // {
"GetAccount succeeds when admin roleID in context", // "GetAccount succeeds when admin roleID in context",
[]string{ssvc.BundleUUIDRoleAdmin}, // []string{ssvc.BundleUUIDRoleAdmin},
nil, // nil,
}, // },
} // }
//
for _, scenario := range scenarios { // for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) { // t.Run(scenario.name, func(t *testing.T) {
teardown := setup() // teardown := setup()
defer teardown() // defer teardown()
//
ctx := buildTestCtx(t, scenario.roleIDs) // ctx := buildTestCtx(t, scenario.roleIDs)
request := &proto.GetAccountRequest{} // request := &proto.GetAccountRequest{}
response := &proto.Account{} // response := &proto.Account{}
err := s.GetAccount(ctx, request, response) // err := s.GetAccount(ctx, request, response)
if scenario.permissionError != nil { // if scenario.permissionError != nil {
assert.Equal(t, scenario.permissionError, err) // assert.Equal(t, scenario.permissionError, err)
} else if err != nil { // } else if err != nil {
// we are only checking permissions here, so just check that the error code is not 403 // // we are only checking permissions here, so just check that the error code is not 403
merr := merrors.FromError(err) // merr := merrors.FromError(err)
assert.NotEqual(t, http.StatusForbidden, merr.GetCode()) // assert.NotEqual(t, http.StatusForbidden, merr.GetCode())
} // }
}) // })
} // }
} //}
//
// TestPermissionsCreateAccount checks permission handling on CreateAccount //// TestPermissionsCreateAccount checks permission handling on CreateAccount
func TestPermissionsCreateAccount(t *testing.T) { //func TestPermissionsCreateAccount(t *testing.T) {
var scenarios = []struct { // var scenarios = []struct {
name string // name string
roleIDs []string // roleIDs []string
permissionError error // permissionError error
}{ // }{
// TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged // // TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged
// replace with two tests: // // replace with two tests:
// 1: "CreateAccount fails with 403 when roleIDs don't exist in context" // // 1: "CreateAccount fails with 403 when roleIDs don't exist in context"
// 2: "CreateAccount fails with 403 when no admin role in context" // // 2: "CreateAccount fails with 403 when no admin role in context"
{ // {
"CreateAccount succeeds when no role IDs in context", // "CreateAccount succeeds when no role IDs in context",
nil, // nil,
nil, // nil,
}, // },
{ // {
"CreateAccount fails when no admin roleID in context", // "CreateAccount fails when no admin roleID in context",
[]string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest}, // []string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest},
merrors.Forbidden(s.id, "no permission for CreateAccount"), // merrors.Forbidden(s.id, "no permission for CreateAccount"),
}, // },
{ // {
"CreateAccount succeeds when admin roleID in context", // "CreateAccount succeeds when admin roleID in context",
[]string{ssvc.BundleUUIDRoleAdmin}, // []string{ssvc.BundleUUIDRoleAdmin},
nil, // nil,
}, // },
} // }
//
for _, scenario := range scenarios { // for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) { // t.Run(scenario.name, func(t *testing.T) {
teardown := setup() // teardown := setup()
defer teardown() // defer teardown()
//
ctx := buildTestCtx(t, scenario.roleIDs) // ctx := buildTestCtx(t, scenario.roleIDs)
request := &proto.CreateAccountRequest{} // request := &proto.CreateAccountRequest{}
response := &proto.Account{} // response := &proto.Account{}
err := s.CreateAccount(ctx, request, response) // err := s.CreateAccount(ctx, request, response)
if scenario.permissionError != nil { // if scenario.permissionError != nil {
assert.Equal(t, scenario.permissionError, err) // assert.Equal(t, scenario.permissionError, err)
} else if err != nil { // } else if err != nil {
// we are only checking permissions here, so just check that the error code is not 403 // // we are only checking permissions here, so just check that the error code is not 403
merr := merrors.FromError(err) // merr := merrors.FromError(err)
assert.NotEqual(t, http.StatusForbidden, merr.GetCode()) // assert.NotEqual(t, http.StatusForbidden, merr.GetCode())
} // }
}) // })
} // }
} //}
//
// TestPermissionsUpdateAccount checks permission handling on UpdateAccount //// TestPermissionsUpdateAccount checks permission handling on UpdateAccount
func TestPermissionsUpdateAccount(t *testing.T) { //func TestPermissionsUpdateAccount(t *testing.T) {
var scenarios = []struct { // var scenarios = []struct {
name string // name string
roleIDs []string // roleIDs []string
permissionError error // permissionError error
}{ // }{
// TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged // // TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged
// replace with two tests: // // replace with two tests:
// 1: "UpdateAccount fails with 403 when roleIDs don't exist in context" // // 1: "UpdateAccount fails with 403 when roleIDs don't exist in context"
// 2: "UpdateAccount fails with 403 when no admin role in context" // // 2: "UpdateAccount fails with 403 when no admin role in context"
{ // {
"UpdateAccount succeeds when no role IDs in context", // "UpdateAccount succeeds when no role IDs in context",
nil, // nil,
nil, // nil,
}, // },
{ // {
"UpdateAccount fails when no admin roleID in context", // "UpdateAccount fails when no admin roleID in context",
[]string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest}, // []string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest},
merrors.Forbidden(s.id, "no permission for UpdateAccount"), // merrors.Forbidden(s.id, "no permission for UpdateAccount"),
}, // },
{ // {
"UpdateAccount succeeds when admin roleID in context", // "UpdateAccount succeeds when admin roleID in context",
[]string{ssvc.BundleUUIDRoleAdmin}, // []string{ssvc.BundleUUIDRoleAdmin},
nil, // nil,
}, // },
} // }
//
for _, scenario := range scenarios { // for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) { // t.Run(scenario.name, func(t *testing.T) {
teardown := setup() // teardown := setup()
defer teardown() // defer teardown()
//
ctx := buildTestCtx(t, scenario.roleIDs) // ctx := buildTestCtx(t, scenario.roleIDs)
request := &proto.UpdateAccountRequest{} // request := &proto.UpdateAccountRequest{}
response := &proto.Account{} // response := &proto.Account{}
err := s.UpdateAccount(ctx, request, response) // err := s.UpdateAccount(ctx, request, response)
if scenario.permissionError != nil { // if scenario.permissionError != nil {
assert.Equal(t, scenario.permissionError, err) // assert.Equal(t, scenario.permissionError, err)
} else if err != nil { // } else if err != nil {
// we are only checking permissions here, so just check that the error code is not 403 // // we are only checking permissions here, so just check that the error code is not 403
merr := merrors.FromError(err) // merr := merrors.FromError(err)
assert.NotEqual(t, http.StatusForbidden, merr.GetCode()) // assert.NotEqual(t, http.StatusForbidden, merr.GetCode())
} // }
}) // })
} // }
} //}
//
// TestPermissionsDeleteAccount checks permission handling on DeleteAccount //// TestPermissionsDeleteAccount checks permission handling on DeleteAccount
func TestPermissionsDeleteAccount(t *testing.T) { //func TestPermissionsDeleteAccount(t *testing.T) {
var scenarios = []struct { // var scenarios = []struct {
name string // name string
roleIDs []string // roleIDs []string
permissionError error // permissionError error
}{ // }{
// TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged // // TODO: remove this test when https://github.com/owncloud/ocis/accounts/pull/111 is merged
// replace with two tests: // // replace with two tests:
// 1: "DeleteAccount fails with 403 when roleIDs don't exist in context" // // 1: "DeleteAccount fails with 403 when roleIDs don't exist in context"
// 2: "DeleteAccount fails with 403 when no admin role in context" // // 2: "DeleteAccount fails with 403 when no admin role in context"
{ // {
"DeleteAccount succeeds when no role IDs in context", // "DeleteAccount succeeds when no role IDs in context",
nil, // nil,
nil, // nil,
}, // },
{ // {
"DeleteAccount fails when no admin roleID in context", // "DeleteAccount fails when no admin roleID in context",
[]string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest}, // []string{ssvc.BundleUUIDRoleUser, ssvc.BundleUUIDRoleGuest},
merrors.Forbidden(s.id, "no permission for DeleteAccount"), // merrors.Forbidden(s.id, "no permission for DeleteAccount"),
}, // },
{ // {
"DeleteAccount succeeds when admin roleID in context", // "DeleteAccount succeeds when admin roleID in context",
[]string{ssvc.BundleUUIDRoleAdmin}, // []string{ssvc.BundleUUIDRoleAdmin},
nil, // nil,
}, // },
} // }
//
for _, scenario := range scenarios { // for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) { // t.Run(scenario.name, func(t *testing.T) {
teardown := setup() // teardown := setup()
defer teardown() // defer teardown()
//
ctx := buildTestCtx(t, scenario.roleIDs) // ctx := buildTestCtx(t, scenario.roleIDs)
request := &proto.DeleteAccountRequest{} // request := &proto.DeleteAccountRequest{}
response := &empty.Empty{} // response := &empty.Empty{}
err := s.DeleteAccount(ctx, request, response) // err := s.DeleteAccount(ctx, request, response)
if scenario.permissionError != nil { // if scenario.permissionError != nil {
assert.Equal(t, scenario.permissionError, err) // assert.Equal(t, scenario.permissionError, err)
} else if err != nil { // } else if err != nil {
// we are only checking permissions here, so just check that the error code is not 403 // // we are only checking permissions here, so just check that the error code is not 403
merr := merrors.FromError(err) // merr := merrors.FromError(err)
assert.NotEqual(t, http.StatusForbidden, merr.GetCode()) // assert.NotEqual(t, http.StatusForbidden, merr.GetCode())
} // }
}) // })
} // }
} //}
//
func buildTestCtx(t *testing.T, roleIDs []string) context.Context { //func buildTestCtx(t *testing.T, roleIDs []string) context.Context {
ctx := context.Background() // ctx := context.Background()
if roleIDs != nil { // if roleIDs != nil {
roleIDs, err := json.Marshal(roleIDs) // roleIDs, err := json.Marshal(roleIDs)
assert.NoError(t, err) // assert.NoError(t, err)
ctx = metadata.Set(ctx, middleware.RoleIDs, string(roleIDs)) // ctx = metadata.Set(ctx, middleware.RoleIDs, string(roleIDs))
} // }
return ctx // return ctx
} //}
//
func buildRoleServiceMock() settings.RoleService { //func buildRoleServiceMock() settings.RoleService {
defaultRoles := map[string]*settings.Bundle{ // defaultRoles := map[string]*settings.Bundle{
ssvc.BundleUUIDRoleAdmin: { // ssvc.BundleUUIDRoleAdmin: {
Id: ssvc.BundleUUIDRoleAdmin, // Id: ssvc.BundleUUIDRoleAdmin,
Type: settings.Bundle_TYPE_ROLE, // Type: settings.Bundle_TYPE_ROLE,
Resource: &settings.Resource{ // Resource: &settings.Resource{
Type: settings.Resource_TYPE_SYSTEM, // Type: settings.Resource_TYPE_SYSTEM,
}, // },
Settings: []*settings.Setting{ // Settings: []*settings.Setting{
{ // {
Id: AccountManagementPermissionID, // Id: AccountManagementPermissionID,
}, // },
}, // },
}, // },
ssvc.BundleUUIDRoleUser: { // ssvc.BundleUUIDRoleUser: {
Id: ssvc.BundleUUIDRoleUser, // Id: ssvc.BundleUUIDRoleUser,
Type: settings.Bundle_TYPE_ROLE, // Type: settings.Bundle_TYPE_ROLE,
Resource: &settings.Resource{ // Resource: &settings.Resource{
Type: settings.Resource_TYPE_SYSTEM, // Type: settings.Resource_TYPE_SYSTEM,
}, // },
Settings: []*settings.Setting{}, // Settings: []*settings.Setting{},
}, // },
ssvc.BundleUUIDRoleGuest: { // ssvc.BundleUUIDRoleGuest: {
Id: ssvc.BundleUUIDRoleGuest, // Id: ssvc.BundleUUIDRoleGuest,
Type: settings.Bundle_TYPE_ROLE, // Type: settings.Bundle_TYPE_ROLE,
Resource: &settings.Resource{ // Resource: &settings.Resource{
Type: settings.Resource_TYPE_SYSTEM, // Type: settings.Resource_TYPE_SYSTEM,
}, // },
Settings: []*settings.Setting{}, // Settings: []*settings.Setting{},
}, // },
} // }
return settings.MockRoleService{ // return settings.MockRoleService{
ListRolesFunc: func(ctx context.Context, req *settings.ListBundlesRequest, opts ...client.CallOption) (res *settings.ListBundlesResponse, err error) { // ListRolesFunc: func(ctx context.Context, req *settings.ListBundlesRequest, opts ...client.CallOption) (res *settings.ListBundlesResponse, err error) {
payload := make([]*settings.Bundle, 0) // payload := make([]*settings.Bundle, 0)
for _, roleID := range req.BundleIds { // for _, roleID := range req.BundleIds {
if defaultRoles[roleID] != nil { // if defaultRoles[roleID] != nil {
payload = append(payload, defaultRoles[roleID]) // payload = append(payload, defaultRoles[roleID])
} // }
} // }
return &settings.ListBundlesResponse{ // return &settings.ListBundlesResponse{
Bundles: payload, // Bundles: payload,
}, nil // }, nil
}, // },
AssignRoleToUserFunc: func(ctx context.Context, req *settings.AssignRoleToUserRequest, opts ...client.CallOption) (res *settings.AssignRoleToUserResponse, err error) { // AssignRoleToUserFunc: func(ctx context.Context, req *settings.AssignRoleToUserRequest, opts ...client.CallOption) (res *settings.AssignRoleToUserResponse, err error) {
// mock can be empty. function is called during service start. actual role assignments not needed for the tests. // // mock can be empty. function is called during service start. actual role assignments not needed for the tests.
return &settings.AssignRoleToUserResponse{ // return &settings.AssignRoleToUserResponse{
Assignment: &settings.UserRoleAssignment{}, // Assignment: &settings.UserRoleAssignment{},
}, nil // }, nil
}, // },
} // }
} //}
+3 -3
View File
@@ -2,9 +2,9 @@ package service
import ( import (
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis-pkg/v2/roles" "github.com/owncloud/ocis/ocis-pkg/roles"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
) )
// Option defines a single option function. // Option defines a single option function.
+3 -3
View File
@@ -4,9 +4,9 @@ import (
"context" "context"
mclient "github.com/micro/go-micro/v2/client" mclient "github.com/micro/go-micro/v2/client"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
ssvc "github.com/owncloud/ocis-settings/pkg/service/v0" ssvc "github.com/owncloud/ocis/settings/pkg/service/v0"
) )
const ( const (
+4 -4
View File
@@ -21,10 +21,10 @@ import (
mclient "github.com/micro/go-micro/v2/client" mclient "github.com/micro/go-micro/v2/client"
"github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/accounts/pkg/config"
"github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/proto/v0"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis-pkg/v2/roles" "github.com/owncloud/ocis/ocis-pkg/roles"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
settings_svc "github.com/owncloud/ocis-settings/pkg/service/v0" settings_svc "github.com/owncloud/ocis/settings/pkg/service/v0"
) )
// New returns a new instance of Service // New returns a new instance of Service
+3 -3
View File
@@ -4,9 +4,9 @@ import (
"context" "context"
mclient "github.com/micro/go-micro/v2/client" mclient "github.com/micro/go-micro/v2/client"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
ssvc "github.com/owncloud/ocis-settings/pkg/service/v0" ssvc "github.com/owncloud/ocis/settings/pkg/service/v0"
) )
const ( const (
+1 -1
View File
@@ -1,7 +1,7 @@
package account package account
import ( import (
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+5 -3
View File
@@ -12,8 +12,7 @@ require (
github.com/micro/cli/v2 v2.1.2 github.com/micro/cli/v2 v2.1.2
github.com/micro/go-micro/v2 v2.9.1 github.com/micro/go-micro/v2 v2.9.1
github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.9.1 github.com/micro/go-plugins/wrapper/trace/opencensus/v2 v2.9.1
github.com/owncloud/ocis-pkg/v2 v2.4.0 github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee // indirect
github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872
github.com/prometheus/client_golang v1.7.1 github.com/prometheus/client_golang v1.7.1
github.com/restic/calens v0.2.0 github.com/restic/calens v0.2.0
github.com/rs/zerolog v1.19.0 github.com/rs/zerolog v1.19.0
@@ -24,4 +23,7 @@ require (
honnef.co/go/tools v0.0.1-2020.1.5 honnef.co/go/tools v0.0.1-2020.1.5
) )
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 replace (
google.golang.org/grpc => google.golang.org/grpc v1.26.0
github.com/owncloud/ocis/settings => ../settings
)
+7 -2
View File
@@ -773,10 +773,15 @@ github.com/ory/herodot v0.6.2/go.mod h1:3BOneqcyBsVybCPAJoi92KN2BpJHcmDqAMcAAaJi
github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28= github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28=
github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8= github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8=
github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ=
github.com/owncloud/ocis-pkg/v2 v2.4.0 h1:/3ZOd4txtwjiNKJA9iLT9BjrJw5YgHSX13fQR4BYfGY= github.com/owncloud/ocis v1.0.0-rc1 h1:5pxFes3myh5cwfvyZ0l6akN9wneSc9UxB5Veg2Xr1Rc=
github.com/owncloud/ocis-pkg/v2 v2.4.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE= github.com/owncloud/ocis v1.0.0-rc1.0.20200918114005-1a0ddd2190ee h1:EXT7AIO8bc6HEcnvybGQUkzRXin2KagJBpuv12oZksM=
github.com/owncloud/ocis/ocis-pkg/ v2.4.0 h1:/3ZOd4txtwjiNKJA9iLT9BjrJw5YgHSX13fQR4BYfGY=
github.com/owncloud/ocis/ocis-pkg/ v2.4.0/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE=
github.com/owncloud/ocis/ocis-pkg/ v2.4.1-0.20200902134813-1e87c6173ada/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw=
github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872 h1:VGWM/eLIxXY6BJLDuzpdjSVa73Dj5S8pfUtT9Sb5Ono= github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872 h1:VGWM/eLIxXY6BJLDuzpdjSVa73Dj5S8pfUtT9Sb5Ono=
github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872/go.mod h1:vRge9QDkOsc6j76gPBmZs1Z5uOPrV4DIkZCgZCEFwBA= github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872/go.mod h1:vRge9QDkOsc6j76gPBmZs1Z5uOPrV4DIkZCgZCEFwBA=
github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee h1:LaKP3hCTJ6WwB3W40m5UhddvokMRIbOXrjogxON4jAI=
github.com/owncloud/ocis/settings v0.0.0-20200918114005-1a0ddd2190ee/go.mod h1:5w91idmyOd8LgYK3eGuqsFBOfVJnSDeEp7S6dHheW14=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/cs3org/reva/pkg/token/manager/jwt" "github.com/cs3org/reva/pkg/token/manager/jwt"
"github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/metadata"
"github.com/owncloud/ocis-pkg/v2/account" "github.com/owncloud/ocis/ocis-pkg/account"
) )
// newAccountOptions initializes the available default options. // newAccountOptions initializes the available default options.
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time" "time"
"github.com/go-chi/chi/middleware" "github.com/go-chi/chi/middleware"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Logger is a middleware to log http requests. // Logger is a middleware to log http requests.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"time" "time"
oidc "github.com/coreos/go-oidc" oidc "github.com/coreos/go-oidc"
ocisoidc "github.com/owncloud/ocis-pkg/v2/oidc" ocisoidc "github.com/owncloud/ocis/ocis-pkg/oidc"
"golang.org/x/oauth2" "golang.org/x/oauth2"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package oidc package oidc
import ( import (
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"sync" "sync"
"time" "time"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
) )
// entry extends a bundle and adds a TTL // entry extends a bundle and adds a TTL
+2 -2
View File
@@ -3,8 +3,8 @@ package roles
import ( import (
"context" "context"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
) )
// Manager manages a cache of roles by fetching unknown roles from the settings.RoleService. // Manager manages a cache of roles by fetching unknown roles from the settings.RoleService.
+2 -2
View File
@@ -3,8 +3,8 @@ package roles
import ( import (
"time" "time"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
settings "github.com/owncloud/ocis-settings/pkg/proto/v0" settings "github.com/owncloud/ocis/settings/pkg/proto/v0"
) )
// Options are all the possible options. // Options are all the possible options.
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/metadata"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
) )
// ReadRoleIDsFromContext extracts roleIDs from the metadata context and returns them as []string // ReadRoleIDsFromContext extracts roleIDs from the metadata context and returns them as []string
+1 -1
View File
@@ -3,7 +3,7 @@ package debug
import ( import (
"net/http" "net/http"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"net/http/pprof" "net/http/pprof"
"github.com/justinas/alice" "github.com/justinas/alice"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/client_golang/prometheus/promhttp"
"go.opencensus.io/zpages" "go.opencensus.io/zpages"
) )
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context" "context"
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/micro/go-micro/v2" "github.com/micro/go-micro/v2"
"github.com/micro/go-plugins/wrapper/trace/opencensus/v2" "github.com/micro/go-plugins/wrapper/trace/opencensus/v2"
"github.com/owncloud/ocis-pkg/v2/wrapper/prometheus" "github.com/owncloud/ocis/ocis-pkg/wrapper/prometheus"
) )
// Service simply wraps the go-micro grpc service. // Service simply wraps the go-micro grpc service.
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"net/http" "net/http"
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// Option defines a single option function. // Option defines a single option function.
+5 -2
View File
@@ -18,7 +18,7 @@ require (
github.com/mitchellh/gox v1.0.1 github.com/mitchellh/gox v1.0.1
github.com/oklog/run v1.0.0 github.com/oklog/run v1.0.0
github.com/openzipkin/zipkin-go v0.2.2 github.com/openzipkin/zipkin-go v0.2.2
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada github.com/owncloud/ocis/ocis-pkg v0.0.0-20200918114005-1a0ddd2190ee // indirect
github.com/restic/calens v0.2.0 github.com/restic/calens v0.2.0
github.com/spf13/viper v1.6.3 github.com/spf13/viper v1.6.3
github.com/stretchr/testify v1.6.1 github.com/stretchr/testify v1.6.1
@@ -30,4 +30,7 @@ require (
gotest.tools v2.2.0+incompatible gotest.tools v2.2.0+incompatible
) )
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 replace (
google.golang.org/grpc => google.golang.org/grpc v1.26.0
github.com/owncloud/ocis/ocis-pkg => ../ocis-pkg
)
+4
View File
@@ -759,6 +759,8 @@ github.com/ory/herodot v0.6.2/go.mod h1:3BOneqcyBsVybCPAJoi92KN2BpJHcmDqAMcAAaJi
github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28= github.com/ory/viper v1.5.6/go.mod h1:TYmpFpKLxjQwvT4f0QPpkOn4sDXU1kDgAwJpgLYiQ28=
github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8= github.com/ory/x v0.0.85/go.mod h1:s44V8t3xyjWZREcU+mWlp4h302rTuM4aLXcW+y5FbQ8=
github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ=
github.com/owncloud/ocis v1.0.0-rc1 h1:5pxFes3myh5cwfvyZ0l6akN9wneSc9UxB5Veg2Xr1Rc=
github.com/owncloud/ocis v1.0.0-rc1.0.20200918114005-1a0ddd2190ee h1:EXT7AIO8bc6HEcnvybGQUkzRXin2KagJBpuv12oZksM=
github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d h1:eruHqxLfS3fiPO1ylg60T++wShVqtayI4LxUhwOEuN4= github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d h1:eruHqxLfS3fiPO1ylg60T++wShVqtayI4LxUhwOEuN4=
github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE= github.com/owncloud/ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d/go.mod h1:FSzIvhx9HcZcq4jgNaDowNvM7PTX/XCyoMvyfzidUpE=
github.com/owncloud/ocis-pkg/v2 v2.3.1-0.20200825114153-bc31e3e4b1e0 h1:dz/I+K7+1t3RKrNafDtb6EWJCQe7+z6c4V9UF0bGxCI= github.com/owncloud/ocis-pkg/v2 v2.3.1-0.20200825114153-bc31e3e4b1e0 h1:dz/I+K7+1t3RKrNafDtb6EWJCQe7+z6c4V9UF0bGxCI=
@@ -771,6 +773,8 @@ github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada h1:iVknnuT/
github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw= github.com/owncloud/ocis-pkg/v2 v2.4.1-0.20200902134813-1e87c6173ada/go.mod h1:WdcVM54z0X7aQzS8eyGl7S5sjEMVBtLpfpzsPX3Z+Pw=
github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872 h1:VGWM/eLIxXY6BJLDuzpdjSVa73Dj5S8pfUtT9Sb5Ono= github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872 h1:VGWM/eLIxXY6BJLDuzpdjSVa73Dj5S8pfUtT9Sb5Ono=
github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872/go.mod h1:vRge9QDkOsc6j76gPBmZs1Z5uOPrV4DIkZCgZCEFwBA= github.com/owncloud/ocis-settings v0.3.2-0.20200828091056-47af10a0e872/go.mod h1:vRge9QDkOsc6j76gPBmZs1Z5uOPrV4DIkZCgZCEFwBA=
github.com/owncloud/ocis/ocis-pkg v0.0.0-20200918114005-1a0ddd2190ee h1:P/bd6+zVU+I+X1+VfSg9av0OD2bfw1tUSHQtWj1JX/I=
github.com/owncloud/ocis/ocis-pkg v0.0.0-20200918114005-1a0ddd2190ee/go.mod h1:kukd3chd0ARpGNSLcIutgFywSvWIIdQcpyhPtVTyZbM=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
// Fake the import to make the dep tree happy. // Fake the import to make the dep tree happy.
+1 -1
View File
@@ -1,7 +1,7 @@
package assets package assets
import ( import (
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
) )
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"strings" "strings"
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/flagset" "github.com/owncloud/ocis/settings/pkg/flagset"
"github.com/owncloud/ocis/settings/pkg/version" "github.com/owncloud/ocis/settings/pkg/version"
@@ -11,9 +11,9 @@ import (
merrors "github.com/micro/go-micro/v2/errors" merrors "github.com/micro/go-micro/v2/errors"
"github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/metadata"
ocislog "github.com/owncloud/ocis-pkg/v2/log" ocislog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/owncloud/ocis-pkg/v2/service/grpc" "github.com/owncloud/ocis/ocis-pkg/service/grpc"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
svc "github.com/owncloud/ocis/settings/pkg/service/v0" svc "github.com/owncloud/ocis/settings/pkg/service/v0"
+1 -1
View File
@@ -3,7 +3,7 @@ package debug
import ( import (
"context" "context"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
) )
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"io" "io"
"net/http" "net/http"
"github.com/owncloud/ocis-pkg/v2/service/debug" "github.com/owncloud/ocis/ocis-pkg/service/debug"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/version" "github.com/owncloud/ocis/settings/pkg/version"
) )
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context" "context"
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/metrics" "github.com/owncloud/ocis/settings/pkg/metrics"
) )
+1 -1
View File
@@ -1,7 +1,7 @@
package grpc package grpc
import ( import (
"github.com/owncloud/ocis-pkg/v2/service/grpc" "github.com/owncloud/ocis/ocis-pkg/service/grpc"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
svc "github.com/owncloud/ocis/settings/pkg/service/v0" svc "github.com/owncloud/ocis/settings/pkg/service/v0"
"github.com/owncloud/ocis/settings/pkg/version" "github.com/owncloud/ocis/settings/pkg/version"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context" "context"
"github.com/micro/cli/v2" "github.com/micro/cli/v2"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/metrics" "github.com/owncloud/ocis/settings/pkg/metrics"
) )
+3 -3
View File
@@ -2,9 +2,9 @@ package http
import ( import (
"github.com/go-chi/chi" "github.com/go-chi/chi"
"github.com/owncloud/ocis-pkg/v2/account" "github.com/owncloud/ocis/ocis-pkg/account"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/owncloud/ocis-pkg/v2/service/http" "github.com/owncloud/ocis/ocis-pkg/service/http"
"github.com/owncloud/ocis/settings/pkg/assets" "github.com/owncloud/ocis/settings/pkg/assets"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
svc "github.com/owncloud/ocis/settings/pkg/service/v0" svc "github.com/owncloud/ocis/settings/pkg/service/v0"
+1 -1
View File
@@ -1,7 +1,7 @@
package svc package svc
import ( import (
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
) )
// NewLogging returns a service that logs messages. // NewLogging returns a service that logs messages.
+1 -1
View File
@@ -3,7 +3,7 @@ package svc
import ( import (
"net/http" "net/http"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
) )
+3 -3
View File
@@ -7,9 +7,9 @@ import (
"github.com/golang/protobuf/ptypes/empty" "github.com/golang/protobuf/ptypes/empty"
merrors "github.com/micro/go-micro/v2/errors" merrors "github.com/micro/go-micro/v2/errors"
"github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/metadata"
"github.com/owncloud/ocis-pkg/v2/log" "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/owncloud/ocis-pkg/v2/roles" "github.com/owncloud/ocis/ocis-pkg/roles"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
"github.com/owncloud/ocis/settings/pkg/settings" "github.com/owncloud/ocis/settings/pkg/settings"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"testing" "testing"
"github.com/micro/go-micro/v2/metadata" "github.com/micro/go-micro/v2/metadata"
"github.com/owncloud/ocis-pkg/v2/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@@ -7,7 +7,7 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@@ -3,7 +3,7 @@ package store
import ( import (
"testing" "testing"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
+1 -1
View File
@@ -4,7 +4,7 @@ package store
import ( import (
"os" "os"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/config" "github.com/owncloud/ocis/settings/pkg/config"
"github.com/owncloud/ocis/settings/pkg/settings" "github.com/owncloud/ocis/settings/pkg/settings"
) )
+1 -1
View File
@@ -3,7 +3,7 @@ package store
import ( import (
"testing" "testing"
olog "github.com/owncloud/ocis-pkg/v2/log" olog "github.com/owncloud/ocis/ocis-pkg/log"
"github.com/owncloud/ocis/settings/pkg/proto/v0" "github.com/owncloud/ocis/settings/pkg/proto/v0"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )