2017-09-22 1 views
-2

Lorsque j'exécute le code suivant, je rencontre l'erreur ci-dessous. analyse syntaxique JavaScript version: 1.9.2Parse Erreur de création de rôle

"TypeError: role must be a ParseRole or a String 
    at e.value (https://unpkg.com/[email protected]/dist/parse.min.js:13:26051) 
    at ensureRoles (saceqihafu.js:48:14) 
    at saceqihafu.js:70:1 
    at https://static.jsbin.com/js/prod/runner-4.0.4.min.js:1:13850 
    at https://static.jsbin.com/js/prod/runner-4.0.4.min.js:1:10792" 


function ensureRoles() { 
     console.log('Start') 

    //create admin role 
     var msgACL = new Parse.ACL(); 
     msgACL.setPublicReadAccess(false); 
     msgACL.setPublicWriteAccess(false); 
     var msgRole = new Parse.Role("merchant", msgACL); 
     //msgRole.save().then(function(e) { console.log("msgRole role saved")}, function(err){console.log(err); }); 

     //create user role 
     var developerRoleACL = new Parse.ACL(); 
     developerRoleACL.setPublicReadAccess(false); 
     developerRoleACL.setPublicWriteAccess(false); 
     var developerRole = new Parse.Role("developer", developerRoleACL); 
     //developerRole.save().then(function(e) { console.log("developer role saved")}, function(err){console.log(err); }); 

     var SysAnalystACL = new Parse.ACL(); 
     SysAnalystACL.setPublicReadAccess(false); 
     SysAnalystACL.setPublicWriteAccess(false); 
     var SysAnalystRole = new Parse.Role("SysAnalyst", SysAnalystACL); 
     //SysAnalystRole.save().then(function(e) { console.log("SysAnalyst role saved")}, function(err){console.log(err); }); 

     var memACL = new Parse.ACL(); 
     memACL.setPublicReadAccess(false); 
     memACL.setPublicWriteAccess(false); 
     memACL.setRoleWriteAccess(false); 
     var memRole = new Parse.Role("member_merchant", memACL); 
     //memRole.save().then(function(e) { console.log("memRole role saved")}, function(err){console.log(err); }); 

    console.log("saved") 
    return Parse.Promise.when(
          msgRole.save(null,{useMasterKey:true}), 
          developerRole.save(null,{useMasterKey:true}), 
          SysAnalystRole.save(null,{useMasterKey:true}), 
          memRole.save(null,{useMasterKey:true}) 
    ); 

} 

function Donefunction() { 
    console.log('Done 1') 
} 

ensureRoles() 
    .then(Donefunction) 

Si je commente la ligne suivante,

//memRole.save(null,{useMasterKey:true})

Le code est exécuté avec succès. Sinon, j'obtiens l'erreur ci-dessus. Je ne sais pas ce qui ne va pas. Est-ce que le soulignement _ n'est pas autorisé dans les rôles d'analyse?

Répondre

0

Ok, compris le problème.

Ligne # memACL.setRoleWriteAccess (false);

Indiquez le nom du rôle et il fonctionnera correctement.

memACL.setRoleWriteAccess("testRole",false); 

la description de l'erreur était médiocre.