New pluginapi method for syncables (#30790)
* new pluginapi method for syncables --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -1460,3 +1460,29 @@ func (api *PluginAPI) GetGroups(page, perPage int, opts model.GroupSearchOpts, v
|
|||||||
}
|
}
|
||||||
return api.app.GetGroups(page, perPage, opts, viewRestrictions)
|
return api.app.GetGroups(page, perPage, opts, viewRestrictions)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (api *PluginAPI) CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError {
|
||||||
|
if err := api.checkLDAPLicense(); err != nil {
|
||||||
|
return model.NewAppError("CreateDefaultSyncableMemberships", "app.group.license_error", nil, "", http.StatusForbidden).Wrap(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err := api.app.CreateDefaultMemberships(api.ctx, params)
|
||||||
|
if err != nil {
|
||||||
|
return model.NewAppError("CreateDefaultSyncableMemberships", "app.group.create_syncable_memberships.error", nil, "", http.StatusInternalServerError).Wrap(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PluginAPI) DeleteGroupConstrainedMemberships() *model.AppError {
|
||||||
|
if err := api.checkLDAPLicense(); err != nil {
|
||||||
|
return model.NewAppError("DeleteGroupConstrainedMemberships", "app.group.license_error", nil, "", http.StatusForbidden).Wrap(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err := api.app.DeleteGroupConstrainedMemberships(api.ctx)
|
||||||
|
if err != nil {
|
||||||
|
return model.NewAppError("DeleteGroupConstrainedMemberships", "app.group.delete_invalid_syncable_memberships.error", nil, "", http.StatusInternalServerError).Wrap(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -5358,10 +5358,18 @@
|
|||||||
"id": "app.get_user_team_scheduled_posts.error",
|
"id": "app.get_user_team_scheduled_posts.error",
|
||||||
"translation": "Error occurred fetching scheduled posts."
|
"translation": "Error occurred fetching scheduled posts."
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "app.group.create_syncable_memberships.error",
|
||||||
|
"translation": "Unable to create group syncable memberships."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "app.group.crud_permission",
|
"id": "app.group.crud_permission",
|
||||||
"translation": "Unable to perform operation for that source type."
|
"translation": "Unable to perform operation for that source type."
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "app.group.delete_invalid_syncable_memberships.error",
|
||||||
|
"translation": "Unable to delete invalid group syncable memberships."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "app.group.group_syncable_already_deleted",
|
"id": "app.group.group_syncable_already_deleted",
|
||||||
"translation": "group syncable was already deleted"
|
"translation": "group syncable was already deleted"
|
||||||
|
|||||||
@@ -1399,6 +1399,18 @@ type API interface {
|
|||||||
// @tag Group
|
// @tag Group
|
||||||
// Minimum server version: 10.7
|
// Minimum server version: 10.7
|
||||||
GetGroups(page, perPage int, opts model.GroupSearchOpts, viewRestrictions *model.ViewUsersRestrictions) ([]*model.Group, *model.AppError)
|
GetGroups(page, perPage int, opts model.GroupSearchOpts, viewRestrictions *model.ViewUsersRestrictions) ([]*model.Group, *model.AppError)
|
||||||
|
|
||||||
|
// CreateDefaultSyncableMemberships creates default syncable memberships based off the provided parameters.
|
||||||
|
//
|
||||||
|
// @tag Group
|
||||||
|
// Minimum server version: 10.9
|
||||||
|
CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError
|
||||||
|
|
||||||
|
// DeleteGroupConstrainedMemberships deletes team and channel memberships of users who aren't members of the allowed groups of all group-constrained teams and channels.
|
||||||
|
//
|
||||||
|
// @tag Group
|
||||||
|
// Minimum server version: 10.9
|
||||||
|
DeleteGroupConstrainedMemberships() *model.AppError
|
||||||
}
|
}
|
||||||
|
|
||||||
var handshake = plugin.HandshakeConfig{
|
var handshake = plugin.HandshakeConfig{
|
||||||
|
|||||||
@@ -1483,3 +1483,17 @@ func (api *apiTimerLayer) GetGroups(page, perPage int, opts model.GroupSearchOpt
|
|||||||
api.recordTime(startTime, "GetGroups", _returnsB == nil)
|
api.recordTime(startTime, "GetGroups", _returnsB == nil)
|
||||||
return _returnsA, _returnsB
|
return _returnsA, _returnsB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (api *apiTimerLayer) CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError {
|
||||||
|
startTime := timePkg.Now()
|
||||||
|
_returnsA := api.apiImpl.CreateDefaultSyncableMemberships(params)
|
||||||
|
api.recordTime(startTime, "CreateDefaultSyncableMemberships", _returnsA == nil)
|
||||||
|
return _returnsA
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *apiTimerLayer) DeleteGroupConstrainedMemberships() *model.AppError {
|
||||||
|
startTime := timePkg.Now()
|
||||||
|
_returnsA := api.apiImpl.DeleteGroupConstrainedMemberships()
|
||||||
|
api.recordTime(startTime, "DeleteGroupConstrainedMemberships", _returnsA == nil)
|
||||||
|
return _returnsA
|
||||||
|
}
|
||||||
|
|||||||
@@ -7113,3 +7113,58 @@ func (s *apiRPCServer) GetGroups(args *Z_GetGroupsArgs, returns *Z_GetGroupsRetu
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Z_CreateDefaultSyncableMembershipsArgs struct {
|
||||||
|
A model.CreateDefaultMembershipParams
|
||||||
|
}
|
||||||
|
|
||||||
|
type Z_CreateDefaultSyncableMembershipsReturns struct {
|
||||||
|
A *model.AppError
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *apiRPCClient) CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError {
|
||||||
|
_args := &Z_CreateDefaultSyncableMembershipsArgs{params}
|
||||||
|
_returns := &Z_CreateDefaultSyncableMembershipsReturns{}
|
||||||
|
if err := g.client.Call("Plugin.CreateDefaultSyncableMemberships", _args, _returns); err != nil {
|
||||||
|
log.Printf("RPC call to CreateDefaultSyncableMemberships API failed: %s", err.Error())
|
||||||
|
}
|
||||||
|
return _returns.A
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *apiRPCServer) CreateDefaultSyncableMemberships(args *Z_CreateDefaultSyncableMembershipsArgs, returns *Z_CreateDefaultSyncableMembershipsReturns) error {
|
||||||
|
if hook, ok := s.impl.(interface {
|
||||||
|
CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError
|
||||||
|
}); ok {
|
||||||
|
returns.A = hook.CreateDefaultSyncableMemberships(args.A)
|
||||||
|
} else {
|
||||||
|
return encodableError(fmt.Errorf("API CreateDefaultSyncableMemberships called but not implemented."))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type Z_DeleteGroupConstrainedMembershipsArgs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type Z_DeleteGroupConstrainedMembershipsReturns struct {
|
||||||
|
A *model.AppError
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *apiRPCClient) DeleteGroupConstrainedMemberships() *model.AppError {
|
||||||
|
_args := &Z_DeleteGroupConstrainedMembershipsArgs{}
|
||||||
|
_returns := &Z_DeleteGroupConstrainedMembershipsReturns{}
|
||||||
|
if err := g.client.Call("Plugin.DeleteGroupConstrainedMemberships", _args, _returns); err != nil {
|
||||||
|
log.Printf("RPC call to DeleteGroupConstrainedMemberships API failed: %s", err.Error())
|
||||||
|
}
|
||||||
|
return _returns.A
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *apiRPCServer) DeleteGroupConstrainedMemberships(args *Z_DeleteGroupConstrainedMembershipsArgs, returns *Z_DeleteGroupConstrainedMembershipsReturns) error {
|
||||||
|
if hook, ok := s.impl.(interface {
|
||||||
|
DeleteGroupConstrainedMemberships() *model.AppError
|
||||||
|
}); ok {
|
||||||
|
returns.A = hook.DeleteGroupConstrainedMemberships()
|
||||||
|
} else {
|
||||||
|
return encodableError(fmt.Errorf("API DeleteGroupConstrainedMemberships called but not implemented."))
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -272,6 +272,26 @@ func (_m *API) CreateCommand(cmd *model.Command) (*model.Command, error) {
|
|||||||
return r0, r1
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateDefaultSyncableMemberships provides a mock function with given fields: params
|
||||||
|
func (_m *API) CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) *model.AppError {
|
||||||
|
ret := _m.Called(params)
|
||||||
|
|
||||||
|
if len(ret) == 0 {
|
||||||
|
panic("no return value specified for CreateDefaultSyncableMemberships")
|
||||||
|
}
|
||||||
|
|
||||||
|
var r0 *model.AppError
|
||||||
|
if rf, ok := ret.Get(0).(func(model.CreateDefaultMembershipParams) *model.AppError); ok {
|
||||||
|
r0 = rf(params)
|
||||||
|
} else {
|
||||||
|
if ret.Get(0) != nil {
|
||||||
|
r0 = ret.Get(0).(*model.AppError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return r0
|
||||||
|
}
|
||||||
|
|
||||||
// CreateGroup provides a mock function with given fields: group
|
// CreateGroup provides a mock function with given fields: group
|
||||||
func (_m *API) CreateGroup(group *model.Group) (*model.Group, *model.AppError) {
|
func (_m *API) CreateGroup(group *model.Group) (*model.Group, *model.AppError) {
|
||||||
ret := _m.Called(group)
|
ret := _m.Called(group)
|
||||||
@@ -717,6 +737,26 @@ func (_m *API) DeleteGroup(groupID string) (*model.Group, *model.AppError) {
|
|||||||
return r0, r1
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteGroupConstrainedMemberships provides a mock function with given fields:
|
||||||
|
func (_m *API) DeleteGroupConstrainedMemberships() *model.AppError {
|
||||||
|
ret := _m.Called()
|
||||||
|
|
||||||
|
if len(ret) == 0 {
|
||||||
|
panic("no return value specified for DeleteGroupConstrainedMemberships")
|
||||||
|
}
|
||||||
|
|
||||||
|
var r0 *model.AppError
|
||||||
|
if rf, ok := ret.Get(0).(func() *model.AppError); ok {
|
||||||
|
r0 = rf()
|
||||||
|
} else {
|
||||||
|
if ret.Get(0) != nil {
|
||||||
|
r0 = ret.Get(0).(*model.AppError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return r0
|
||||||
|
}
|
||||||
|
|
||||||
// DeleteGroupMember provides a mock function with given fields: groupID, userID
|
// DeleteGroupMember provides a mock function with given fields: groupID, userID
|
||||||
func (_m *API) DeleteGroupMember(groupID string, userID string) (*model.GroupMember, *model.AppError) {
|
func (_m *API) DeleteGroupMember(groupID string, userID string) (*model.GroupMember, *model.AppError) {
|
||||||
ret := _m.Called(groupID, userID)
|
ret := _m.Called(groupID, userID)
|
||||||
|
|||||||
@@ -167,3 +167,19 @@ func (g *GroupService) GetGroups(page, perPage int, opts model.GroupSearchOpts,
|
|||||||
groups, appErr := g.api.GetGroups(page, perPage, opts, viewRestrictions)
|
groups, appErr := g.api.GetGroups(page, perPage, opts, viewRestrictions)
|
||||||
return groups, normalizeAppErr(appErr)
|
return groups, normalizeAppErr(appErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateDefaultSyncableMemberships creates default syncable memberships based off the provided parameters.
|
||||||
|
//
|
||||||
|
// Minimum server version: 10.9
|
||||||
|
func (g *GroupService) CreateDefaultSyncableMemberships(params model.CreateDefaultMembershipParams) error {
|
||||||
|
appErr := g.api.CreateDefaultSyncableMemberships(params)
|
||||||
|
return normalizeAppErr(appErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteGroupConstrainedMemberships deletes team and channel memberships of users who aren't members of the allowed groups of all group-constrained teams and channels.
|
||||||
|
//
|
||||||
|
// Minimum server version: 10.9
|
||||||
|
func (g *GroupService) DeleteGroupConstrainedMemberships() error {
|
||||||
|
appErr := g.api.DeleteGroupConstrainedMemberships()
|
||||||
|
return normalizeAppErr(appErr)
|
||||||
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user