feat: (rbac) permission map

This commit is contained in:
xushuhui 2022-04-28 14:08:29 +08:00
parent 14b2f71af6
commit d7af5dfe12
1 changed files with 115 additions and 45 deletions

View File

@ -7,57 +7,101 @@ import (
var PermissionMap = make(map[string][]string) var PermissionMap = make(map[string][]string)
const ( const (
UserRead = "system.user:read" UserRead = "system.user:read"
UserAll = "system.user:all" UserAll = "system.user:all"
RoleRead = "system.role:read" RoleRead = "system.role:read"
RoleAll = "system.role:all" RoleAll = "system.role:all"
RuleRead = "alerting.rule:read" ClusterAll = "system.cluster:all"
RuleAll = "alerting.rule:all" ClusterRead = "system.cluster:read"
InstanceRead = "gateway.instance:read"
InstanceAll = "gateway.instance:all"
FlowRead = "gateway.flow:read"
FlowAll = "gateway.flow:all"
IndexAll = "data.index:read"
IndexRead = "data.index:all"
ViewsAll = "data.views:read"
ViewsRead = "data.views:all"
DiscoverAll = "data.discover:read"
DiscoverRead = "data.discover:all"
ClusterAll = "system.cluster:all"
ClusterRead = "system.cluster:read"
CommandAll = "system.command:all" CommandAll = "system.command:all"
CommandRead = "system.command:read" CommandRead = "system.command:read"
EntryAll = "gateway.entry:all" InstanceRead = "gateway.instance:read"
EntryRead = "gateway.entry:read" InstanceAll = "gateway.instance:all"
RouterRead = "gateway.router:read" EntryAll = "gateway.entry:all"
RouterAll = "gateway.router:all" EntryRead = "gateway.entry:read"
RouterRead = "gateway.router:read"
RouterAll = "gateway.router:all"
FlowRead = "gateway.flow:read"
FlowAll = "gateway.flow:all"
IndexAll = "data.index:all"
IndexRead = "data.index:read"
ViewsAll = "data.views:all"
ViewsRead = "data.views:read"
DiscoverAll = "data.discover:all"
DiscoverRead = "data.discover:read"
RuleRead = "alerting.rule:read"
RuleAll = "alerting.rule:all"
AlertRead = "alerting.alert:read"
AlertAll = "alerting.alert:all"
ChannelRead = "alerting.channel:read"
ChannelAll = "alerting.channel:all"
ClusterOverviewRead = "cluster.overview:read"
ClusterOverviewAll = "cluster.overview:all"
ElasticsearchRead = "cluster.elasticsearch:read"
ElasticsearchAll = "cluster.elasticsearch:all"
ActivitiesRead = "cluster.activities:read"
ActivitiesAll = "cluster.activities:all"
) )
var UserReadPermission = []string{"user:read"} var (
var UserAllPermission = []string{"user:read", "user:write"} UserReadPermission = []string{"user:read"}
UserAllPermission = []string{"user:read", "user:write"}
var RoleReadPermission = []string{"role:read"} RoleReadPermission = []string{"role:read"}
var RoleAllPermission = []string{"role:read", "role:write"} RoleAllPermission = []string{"role:read", "role:write"}
var RuleReadPermission = []string{"rule:read"} ClusterReadPermission = []string{"cluster:read"}
var RuleAllPermission = []string{"rule:read", "rule:write"} ClusterAllPermission = []string{"cluster:read", "cluster:write"}
var InstanceReadPermission = []string{"instance:read"} CommandReadPermission = []string{"command:read"}
var InstanceAllPermission = []string{"instance:all"} CommandAllPermission = []string{"command:read", "command:write"}
var EntryReadPermission = []string{"entry:read"} InstanceReadPermission = []string{"instance:read"}
var EntryAllPermission = []string{"entry:all"} InstanceAllPermission = []string{"instance:read", "instance:write"}
var RouterReadPermission = []string{"router:read"} EntryReadPermission = []string{"entry:read"}
var RouterAllPermission = []string{"router:all"} EntryAllPermission = []string{"entry:read", "entry:write"}
RouterReadPermission = []string{"router:read"}
RouterAllPermission = []string{"router:read", "entry:write"}
FlowReadPermission = []string{"flow:read"}
FlowAllPermission = []string{"flow:read", "flow:write"}
IndexAllPermission = []string{"index:read"}
IndexReadPermission = []string{"index:read", "index:write"}
ViewsAllPermission = []string{"views:read"}
ViewsReadPermission = []string{"views:read", "views:write"}
DiscoverReadPermission = []string{"discover:read"}
DiscoverAllPermission = []string{"discover:read", "discover:write"}
RuleReadPermission = []string{"rule:read"}
RuleAllPermission = []string{"rule:read", "rule:write"}
AlertReadPermission = []string{"alert:read"}
AlertAllPermission = []string{"alert:read", "alert:write"}
ChannelReadPermssion = []string{"channel:read"}
ChannnelAllPermission = []string{"channel:read", "channel:write"}
ClusterOverviewReadPermission = []string{"clusterOverview:read"}
ClusterOverviewAllPermission = []string{"clusterOverview:read", "clusterOverview:write"}
ElasticsearchReadPermission = []string{"elasticsearch:read"}
ElasticsearchAllPermission = []string{"elasticsearch:read", "elasticsearch:write"}
ActivitiesReadPermission = []string{"activities:read"}
ActivitiesAllPermission = []string{"activities:read", "activities:write"}
)
var AdminPrivilege = []string{ var AdminPrivilege = []string{
UserAll, RoleAll, RuleAll, EntryAll, UserAll, RoleAll, ClusterAll, CommandAll,
InstanceAll, ClusterAll, CommandAll, RouterAll, InstanceAll, EntryAll, RouterAll, FlowAll,
FlowRead, FlowAll, IndexAll, ViewsAll, IndexAll, ViewsAll, DiscoverAll,
DiscoverAll, RuleAll, AlertAll, ChannelAll,
ClusterOverviewAll, ElasticsearchAll, ActivitiesAll,
} }
var BuildRoles = make(map[string]map[string]interface{}, 0) var BuildRoles = make(map[string]map[string]interface{}, 0)
@ -74,18 +118,44 @@ func init() {
"created": time.Now(), "created": time.Now(),
} }
PermissionMap = map[string][]string{ PermissionMap = map[string][]string{
UserRead: UserReadPermission, UserRead: UserReadPermission,
UserAll: UserAllPermission, UserAll: UserAllPermission,
RoleRead: RoleReadPermission, RoleRead: RoleReadPermission,
RoleAll: RoleAllPermission, RoleAll: RoleAllPermission,
RuleRead: RuleReadPermission, ClusterRead: ClusterReadPermission,
RuleAll: RuleAllPermission, ClusterAll: ClusterAllPermission,
CommandRead: CommandReadPermission,
CommandAll: CommandAllPermission,
InstanceRead: InstanceReadPermission, InstanceRead: InstanceReadPermission,
InstanceAll: InstanceAllPermission, InstanceAll: InstanceAllPermission,
EntryRead: EntryReadPermission, EntryRead: EntryReadPermission,
EntryAll: EntryAllPermission, EntryAll: EntryAllPermission,
RouterRead: RouterReadPermission, RouterRead: RouterReadPermission,
RouterAll: RouterAllPermission, RouterAll: RouterAllPermission,
FlowRead: FlowReadPermission,
FlowAll: FlowAllPermission,
IndexAll: IndexAllPermission,
IndexRead: IndexReadPermission,
ViewsAll: ViewsAllPermission,
ViewsRead: ViewsReadPermission,
DiscoverRead: DiscoverReadPermission,
DiscoverAll: DiscoverAllPermission,
RuleRead: RuleReadPermission,
RuleAll: RuleAllPermission,
AlertRead: AlertReadPermission,
AlertAll: AlertAllPermission,
ChannelRead: ChannelReadPermssion,
ChannelAll: ChannnelAllPermission,
ClusterOverviewRead: ClusterOverviewReadPermission,
ClusterOverviewAll: ClusterOverviewAllPermission,
ElasticsearchAll: ElasticsearchAllPermission,
ElasticsearchRead: ElasticsearchReadPermission,
ActivitiesAll: ActivitiesAllPermission,
ActivitiesRead: ActivitiesReadPermission,
} }
} }