proofconfig

package
v1.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2023 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DBX          = "proof_config"
	TableX       = "proof_config"
	OrgDBX       = "proof_config_org"
	OrgTableX    = "proof_config_org"
	DeleteDBX    = "proof_config_delete"
	DeleteTableX = "proof_config_delete"
	DefaultType  = "_doc"
)

db names

View Source
const (
	// SuperX 管理员组织
	SuperX = "system"

	// ManagerX 角色
	ManagerX = "manager"
	// MemberX  角色
	MemberX = "member"

	// AddOpX 操作
	AddOpX = "add"
	// DeleteOpX 操作
	DeleteOpX = "delete"
	// SetOpX 操作
	SetOpX = "set"

	// NameX 插件对应的虚拟合约的后缀
	NameX = "config"
)
View Source
const DelMembleMapping = `` /* 883-byte string literal not displayed */

DelMembleMapping es

View Source
const MemberMapping = `` /* 883-byte string literal not displayed */

MemberMapping es

View Source
const OrgMapping = `` /* 271-byte string literal not displayed */

OrgMapping es

Variables

View Source
var (
	ErrBadParams    = "Bad Parameters"
	ErrNoPrivilege  = "No Privilege"
	ErrDB           = "DB Error"
	ErrMemberExists = "Member exists"
	ErrMemberCount  = "organization member count error"
)

errors

View Source
var OpenAccessControl = false

Functions

func InitOpenAccessControl

func InitOpenAccessControl(isOpen bool)

func MemberID

func MemberID(addr string) string

MemberID 获得ID

func NewConvert

func NewConvert(paraTitle, symbol string, supports []string) db.ExecConvert

NewConvert 2注册插件需要的插件创建函数

func OrganizationID

func OrganizationID(org string) string

OrganizationID 获得ID

Types

type ConfigDB

type ConfigDB interface {
	GetMember(addr string) (*Member, error)
	GetMemberDel(addr string, h, i int64) (*memberDel, error)
	GetOrganization(org string) (*Organization, error)
	SetMember(addr string, m *dbMember) error
	SetMemberDel(addr string, m *dbMemberDel) error
	SetOrganization(org string, o *dbOrganization) error

	// MemberPrivilege 存证插件需要
	PrivilegeDB
}

ConfigDB db 访问, 在插件执行时, 需要的db操作

func NewConfigDB

func NewConfigDB(db db.WrapDB) ConfigDB

NewConfigDB NewConfigDB

type Convert

type Convert struct {
	// contains filtered or unexported fields
}

Convert 配置插件实现

func (*Convert) AddMember

func (c *Convert) AddMember(myDB ConfigDB, blockOp int, cfg *payload) ([]db.Record, error)

AddMember 增加成员

func (*Convert) AddOrganizationMember

func (c *Convert) AddOrganizationMember(myDB ConfigDB, cfg *payload) (db.Record, error)

AddOrganizationMember 组织中添加一个成员

func (*Convert) ConvertTx

func (c *Convert) ConvertTx(env *db.TxEnv, op int) ([]db.Record, error)

ConvertTx 展开数据 (插件满足接口 db.ExecConvert)

func (*Convert) DelMember

func (c *Convert) DelMember(myDB ConfigDB, blockOp int, cfg *payload) ([]db.Record, error)

DelMember 增加成员

func (*Convert) DelOrganizationMember

func (c *Convert) DelOrganizationMember(myDB ConfigDB, cfg *payload) (db.Record, error)

DelOrganizationMember 删除组织中一个成员

func (*Convert) InitDB

func (c *Convert) InitDB(cli db.DBCreator) error

InitDB 创建db (插件满足接口 db.ExecConvert)

func (*Convert) SetDB

func (c *Convert) SetDB(db db.WrapDB) error

SetDB SetDB (非必要: 插件需要访问数据库时需要实现, 一般使用于虚拟插件数据展开在es上包含执行逻辑)

func (*Convert) SetMember

func (c *Convert) SetMember(myDB ConfigDB, blockOp int, cfg *payload) ([]db.Record, error)

SetMember 设置成员信息,若之前不存在则新增

type EnterpriseAuth

type EnterpriseAuth struct {
	EnterpriseName string `json:"enterprise_name,omitempty"` // 企业名称
}

EnterpriseAuth 企业认证信息

type Member

type Member struct {
	Address      string `json:"address"`
	Role         string `json:"role"`
	Organization string `json:"organization"`
	Note         string `json:"note"`
	ServerName   string `json:"server_name"`
	*UserDetail
	*PersonalAuth
	*EnterpriseAuth
	// 区块描述
	db.Block
}

Member 组织成员结构体

func (*Member) GetUserName

func (m *Member) GetUserName() string

GetUserName 获取用户名

func (*Member) GetUserRealName

func (m *Member) GetUserRealName() string

GetUserRealName 获取真是姓名

func (*Member) ID

func (m *Member) ID() string

ID 获得ID

func (*Member) PrivilegeToManage

func (m *Member) PrivilegeToManage(org string) bool

PrivilegeToManage 普通管理权限: 包括普通管理员和超级管理员

func (*Member) PrivilegeToProof

func (m *Member) PrivilegeToProof(org, proofOwner string) bool

PrivilegeToProof 管理存证: 包括自己和普通管理员和超级管理员

func (*Member) SuperManager

func (m *Member) SuperManager() bool

SuperManager 超级管理员

type None

type None struct {
	// contains filtered or unexported fields
}

func (*None) GetMember

func (n *None) GetMember(addr string) (*Member, error)

func (None) GetMemberDel

func (db1 None) GetMemberDel(addr string, h, i int64) (*memberDel, error)

func (None) GetOrganization

func (db1 None) GetOrganization(org string) (*Organization, error)

func (*None) GetOrganizationName

func (n *None) GetOrganizationName(addr string) (string, error)

func (*None) IsHaveDelProofPermission

func (n *None) IsHaveDelProofPermission(_, _, _ string) bool

IsHaveDelProofPermission check DelProofPermission

func (*None) IsHaveProofPermission

func (n *None) IsHaveProofPermission(_ string) bool

IsHaveProofPermission check Permission

func (None) SetMember

func (db1 None) SetMember(addr string, m *dbMember) error

func (None) SetMemberDel

func (db1 None) SetMemberDel(addr string, m *dbMemberDel) error

func (None) SetOrganization

func (db1 None) SetOrganization(org string, o *dbOrganization) error

type Organization

type Organization struct {
	Organization string `json:"organization"`
	Note         string `json:"note"`
	Count        int32  `json:"count"`
	// 区块描述
	db.Block
}

Organization 组织结构体

func (*Organization) ID

func (m *Organization) ID() string

ID 获得ID

type Permission

type Permission interface {
	IsManager(address string, organization string) bool
	// 成员包括管理员, 可以用管理员直接进行操作
	IsMember(address string, organization string) bool
}

Permission 其他插件需要判断权限相关的判断 调用这个插件的一些接口

type PersonalAuth

type PersonalAuth struct {
	RealName string `json:"real_name,omitempty"` // 真实姓名
}

PersonalAuth 银行认证信息

type PrivilegeDB

type PrivilegeDB interface {
	IsHaveProofPermission(addr string) bool
	IsHaveDelProofPermission(send, proofOrg, proofOwner string) bool
	GetOrganizationName(addr string) (string, error)
}

PrivilegeDB 存证插件需要

type UserDetail

type UserDetail struct {
	UserName string `json:"user_name,omitempty"` // 用户名
	UserIcon string `json:"user_icon,omitempty"` // 用户头像url
	Phone    string `json:"phone,omitempty"`     // 手机号
	Email    string `json:"email,omitempty"`     // 邮箱
	AuthType int32  `json:"auth_type,omitempty"` // 认证类型(1:个人认证,2:企业认证)
}

UserDetail 用户信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL