Funções da Biblioteca de Controle de Acesso Refinadas
O pacote de bibliotecas fornece as seguintes funções para recursos, grupos e ACLs, bem como funções globais.
Funções Globais
| Função | Descrição | 
|---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) | 
                              
                                  Quando o chaincode é implantado, a função  Depois que o processo de bootstrap é concluído, as seguintes entidades são criadas: 
  | 
                           
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) | 
                              
                                  Obtém o gerente do grupo que é usado para todas as operações relacionadas ao grupo. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador.  | 
                           
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) | 
                              
                                  Obtém o gerenciador de ACL que é usado para todas as operações relacionadas à ACL. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador.  | 
                           
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) | 
                              
                                  Obtém o gerenciador de recursos que é usado para todas as operações relacionadas ao recurso. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador.  | 
                           
Funções da Lista de Controle de Acesso (ACL, Access Control List)
ACL:type ACL struct {
  Name string
  Description string
  Accesses []string  // CREATE, READ, UPDATE, and DELETE, or whatever the end-user defined
  Patterns []string    // identities
  Allowed bool          // true means allows access.
  BindACLs []string  // The list of ACL , control who can call the APIs of this struct
}
- Acessos: A string Acessos é uma lista de nomes de acesso arbitrário separados por vírgulas e é totalmente compatível com o aplicativo, exceto para quatro: CREATE, READ, UPDATE e DELETE. Esses valores de acesso são usados para manter o controle de acesso detalhado. Os aplicativos podem usar suas próprias strings de acesso, como 
"register","invoke"ou"query", ou até mesmo coisas como acesso a nomes de campo, como"owner","quantity"e assim por diante. - Permitido: Permitido determina se as identidades que correspondem a um padrão têm acesso permitido (verdadeiro) ou acesso proibido (falso). Você pode ter uma lista de controle de acesso que indique que Bob tem acesso a "
CREATE" e outra que indique que o grupo Oracle (do qual Bob é membro) está proibido de"CREATE". Se Bob tem ou não acesso depende da ordem das listas de controle de acesso associadas à entidade em questão. - BindACLs: O parâmetro BindACLs forma a lista de controle de acesso inicial.
 
Funções ACL:
| Função | Descrição | 
|---|---|
Create(acl ACL, identity *x509.Certificate) (error) | 
                              
                                  Cria uma ACL. Não são permitidas ACLs nomeadas duplicadas. Para criar uma ACL, a identidade deve ter acesso CREATE ao recurso de bootstrap chamado ". ACLs". Se a identidade for nula, a identidade padrão especificada em   | 
                           
Get(aclName string, identity *x509.Certificate) (ACL, error) | 
                              
                                  Obtém uma ACL nomeada. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
Delete(aclName string, identity *x509.Certificate) (error) | 
                              
                                  Exclui uma ACL especificada. A identidade deve ter acesso DELETE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
Update(acl ACL, identity *x509.Certificate) (error) | 
                              
                                  Atualiza uma ACL. A identidade deve ter acesso UPDATE ao recurso nomeado, e a ACL nomeada deve existir. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona um novo padrão de identidade à ACL nomeada. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) | 
                              
                                  Remove o padrão de identidade da ACL. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddAccess(aclname string, access string, identity *X509Certificate) (error) | 
                              
                                  Adiciona um novo acesso à ACL nomeada. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) | 
                              
                                  Remove o acesso da ACL. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) | 
                              
                                  Atualiza a descrição. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACLs de conexão. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no   | 
                           
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACLs de bind. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no   | 
                           
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) | 
                              
                                  Remove a ACL  A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no   | 
                           
GetAll(identity *x509.Certificate) ([]ACL, error) | 
                              
                                  Obtenha todas as ACLs. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no   | 
                           
Funções do Grupo
Group:type Group struct {
    Name string
    Description string
    Members []string     // identity patterns, except GRP.
    BindACLs []string    // The list of ACLs, controls who can access this group.
}
Definição de funções GroupManager:
                  
| Função | Descrição | 
|---|---|
Create(group Group, identity *x509.Certificate) (error) | 
                              
                                  Cria um grupo. A identidade deve ter acesso CREATE ao grupo de bootstrap   | 
                           
Get(groupName string, identity *x509.Certificate) (Group, error) | 
                              
                                  Obtém um grupo especificado. A identidade deve ter acesso READ a este grupo. Se a identidade for nula, a identidade padrão especificada em   | 
                           
Delete(groupName string, identity *x509.Certificate) (error) | 
                              
                                  Exclui um grupo especificado. A identidade deve ter acesso DELETE a este grupo. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona um ou mais membros ao grupo. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em   | 
                           
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) | 
                              
                                  Remove um ou mais membros de um grupo. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em   | 
                           
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) | 
                              
                                  Atualiza a descrição. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind ao grupo antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACL de bind para o recurso. A identidade deve ter acesso de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind ao grupo após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACLs de bind para o grupo. A identidade deve ter acesso de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Remove a ACL nomeada da lista de ACLs de conexão do grupo nomeado. A identidade deve ter acesso de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
GetAll(identity *x509.Certificate) ([]Group, error) | 
                              
                                  Obtém todos os grupos. A identidade deve ter acesso READ a esses grupos. Se a identidade for nula, a identidade padrão especificada em   | 
                           
Funções de Recursos
Resource:type Resource struct {
     Name string
     Description string
     BindACLs []string      // The name list of ACL, controls who can access this resource
}
Funções de Recursos:
| Fusão | Descrição | 
|---|---|
Create(resource Resource, identity *x509.Certificate) (error) | 
                              
                                  Cria um recurso. Recursos nomeados duplicados não são permitidos. A identidade deve ter acesso CREATE ao recurso de bootstrap   | 
                           
Get(resName string, identity *x509.Certificate) (Resource, error) | 
                              
                                  Obtém um recurso especificado. A identidade deve ter acesso READ ao recurso. Se a identidade for nula, a identidade padrão especificada no   | 
                           
Delete(resName string, identity *x509.Certificate) (error) | 
                              
                                  Exclui um recurso nomeado. A identidade deve ter acesso DELETE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) | 
                              
                                  Atualiza a descrição. A identidade deve ter acesso de ATUALIZAÇÃO a este recurso. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind ao recurso antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACL de bind do recurso. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em   | 
                           
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Adiciona uma ACL de bind ao recurso após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACL de bind do recurso. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) | 
                              
                                  Remove a ACL nomeada da lista de ACLs de ligação do recurso nomeado. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) | 
                              
                                  Verifica se o usuário atual tem o acesso especificado ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no   | 
                           
GetAll(identity *x509.Certificate) ([]Resource, error) | 
                              
                                  Obtém todos os recursos. A identidade deve ter acesso de LEITURA a esses recursos. Se a identidade for nula, a identidade padrão especificada em   |