49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package api
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/filecoin-project/go-jsonrpc/auth"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// When changing these, update docs/API.md too
 | 
						|
 | 
						|
	PermRead  auth.Permission = "read" // default
 | 
						|
	PermWrite auth.Permission = "write"
 | 
						|
	PermSign  auth.Permission = "sign"  // Use wallet keys for signing
 | 
						|
	PermAdmin auth.Permission = "admin" // Manage permissions
 | 
						|
)
 | 
						|
 | 
						|
var AllPermissions = []auth.Permission{PermRead, PermWrite, PermSign, PermAdmin}
 | 
						|
var DefaultPerms = []auth.Permission{PermRead}
 | 
						|
 | 
						|
func permissionedProxies(in, out interface{}) {
 | 
						|
	outs := GetInternalStructs(out)
 | 
						|
	for _, o := range outs {
 | 
						|
		auth.PermissionedProxy(AllPermissions, DefaultPerms, in, o)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func PermissionedStorMinerAPI(a StorageMiner) StorageMiner {
 | 
						|
	var out StorageMinerStruct
 | 
						|
	permissionedProxies(a, &out)
 | 
						|
	return &out
 | 
						|
}
 | 
						|
 | 
						|
func PermissionedFullAPI(a FullNode) FullNode {
 | 
						|
	var out FullNodeStruct
 | 
						|
	permissionedProxies(a, &out)
 | 
						|
	return &out
 | 
						|
}
 | 
						|
 | 
						|
func PermissionedWorkerAPI(a Worker) Worker {
 | 
						|
	var out WorkerStruct
 | 
						|
	permissionedProxies(a, &out)
 | 
						|
	return &out
 | 
						|
}
 | 
						|
 | 
						|
func PermissionedWalletAPI(a Wallet) Wallet {
 | 
						|
	var out WalletStruct
 | 
						|
	permissionedProxies(a, &out)
 | 
						|
	return &out
 | 
						|
}
 |