Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagejs
linenumberstrue
function createDataset(fields, constraints, sortFields) {
	var companyId = getValue("WKCompany");
	var currentUser = getValue("WKUser");
	.
	.
	.
}


Dataset avançado com permissionamento

...

Abaixo temos um exemplo de como implementar o permissionamento em datasets avançados.

Bloco de código
themeEclipse
linenumberstrue
function createDataset(fields, constraints, sortFields) {
    var newDataset = DatasetBuilder.newDataset();
    try{    
        var dataset = "";
        var filter = [];
        var currentUser = getValue("WKUser"); //Código do usuário logado
        var currentCompany = getValue("WKCompany"); //Código da empresa do usuário logado
    
        var groupCode = "grupo";  //Código do grupo que o usuário precisa pertencer para passar na validação.
        dataset = "colleagueGroup" //Nome do dataset que pesquisa a relação de grupos e usuários.
        
        filter= [DatasetFactory.createConstraint("colleagueGroupPK.companyId", currentCompany , currentCompany, ConstraintType.MUST), 
                    DatasetFactory.createConstraint("colleagueGroupPK.colleagueId", currentUser , currentUser, ConstraintType.MUST), 
                    DatasetFactory.createConstraint("colleagueGroupPK.groupId", groupCode, groupCode, ConstraintType.MUST)]; //Cria o filtro para empresa, usuário e grupo.

        /** Codigo para pesquisar por papel ao invés de grupo.
         * 
        var roleCode = "papel"; //Código do papel que o usuário precisa pertencer para passar na validação.
        dataset = "workflowColleagueRole" //Nome do dataset que pesquisa a relação de papéis e usuários.
        
        filter= [DatasetFactory.createConstraint("workflowColleagueRolePK.companyId", currentCompany , currentCompany, ConstraintType.MUST), 
                    DatasetFactory.createConstraint("workflowColleagueRolePK.colleagueId", currentUser , currentUser, ConstraintType.MUST), 
                    DatasetFactory.createConstraint("workflowColleagueRolePK.roleId", roleCode, roleCode, ConstraintType.MUST)];
        */
        var validation = DatasetFactory.getDataset(dataset, null, filter, null); //Realiza a chamada do dataset
        
        if(validation.rowsCount==1){ //Se tiver uma linha quer dizer que o usuário logado faz parte do grupo/papel informado
            //Esse retorno é só para informar que passou da validação, mas aqui dentro ficaria o codigo que o usuário tem permissão de acesso.
            newDataset.addColumn("SUCCESS");
            newDataset.addRow(["ok"]);
        } else {
            //Esse retorno é só para informar que o usuário não faz parte do grupo/papel. 
            newDataset.addColumn("ERROR");
            newDataset.addRow(["sem permissão"]);
        }
        
    } catch(e) {
        newDataset.addColumn("ERROR");
        newDataset.addRow(["chamada incorreta"]);
         return newDataset; 
    }
    return newDataset;
}
Nota
titleAtenção!

Alguns datasets retornam dados sensíveis, por isso, é altamente recomendado que apenas os usuários responsáveis tenham acesso a esses dados.


Utilizando zoom composto em Dataset avançado

...