main

mattermost/focalboard

Last updated at: 29/12/2023 09:47

permissions.go

TLDR

This file defines the PermissionsService interface and the Store interface for the permissions package in the Demo Projects project.

Interfaces

PermissionsService

This interface defines methods for checking if a user has permission to perform certain actions. The methods include HasPermissionTo, HasPermissionToTeam, HasPermissionToChannel, and HasPermissionToBoard.

Store

This interface defines methods for retrieving information related to boards. The methods include GetBoard, GetMemberForBoard, and GetBoardHistory.

//go:generate mockgen -destination=mocks/mockstore.go -package mocks . Store
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

package permissions

import (
	"github.com/mattermost/focalboard/server/model"

	mmModel "github.com/mattermost/mattermost-server/v6/model"
)

type PermissionsService interface {
	HasPermissionTo(userID string, permission *mmModel.Permission) bool
	HasPermissionToTeam(userID, teamID string, permission *mmModel.Permission) bool
	HasPermissionToChannel(userID, channelID string, permission *mmModel.Permission) bool
	HasPermissionToBoard(userID, boardID string, permission *mmModel.Permission) bool
}

type Store interface {
	GetBoard(boardID string) (*model.Board, error)
	GetMemberForBoard(boardID, userID string) (*model.BoardMember, error)
	GetBoardHistory(boardID string, opts model.QueryBoardHistoryOptions) ([]*model.Board, error)
}