Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1.       //////////////////////////////////////////////////////////
  2.       // public API
  3.       void UserRoleReaderWriter::addRolesFromFile()
  4.       {
  5.         QFile file(DefaultRoleFile);
  6.         if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
  7.           Utility::Logger::writeWarning("[UserRoleReaderWriter]::addRolesFromFile() -- Could not open default Roles file:  %s", DefaultRoleFile.toStdString().c_str());
  8.           return;
  9.         }
  10.         // Read the file into a dom
  11.         QDomDocument dom;
  12.         if (!dom.setContent(&file)) {
  13.           Utility::Logger::writeError("[UserRoleReaderWriter]::addRolesFromFile() -- Could not load file %s into DOM tree.", DefaultRoleFile.toStdString().c_str());
  14.           return;
  15.         }
  16.         file.close();
  17.  
  18.         // The dom is created now -- start parsing out the user roles.
  19.         QDomElement xmlRoot = dom.firstChildElement();
  20.         // The root should have the version.
  21.         QString version = xmlRoot.attribute("version", "-1.0");
  22.         if (version == "-1.0") {
  23.           Utility::Logger::writeError("[UserRoleReaderWriter]::addRolesFromFile() -- User Role file at %s has no version information", DefaultRoleFile.toStdString().c_str());
  24.           return;
  25.         }
  26.  
  27.         // If we have the correct info now, we can simply parse things
  28.         // by following the dom tree.
  29.         QDomNodeList roles = xmlRoot.elementsByTagName("UserRole");
  30.         for (int i = 0; i < roles.size(); ++i) {
  31.           QDomNode node = roles.at(i);
  32.           if (node.nodeType() != QDomNode::ElementNode) continue;
  33.           QDomElement element = node.toElement();
  34.           QString roleName = element.text();
  35.           bool hasName = WorkflowManager::globalInstance()->hasRole(roleName);
  36.           if (hasName) continue;
  37.           UserRole* newRole = new UserRole();
  38.           newRole->setName(roleName);
  39.           WorkflowManager::globalInstance()->addRole(newRole);
  40.         }
  41.       }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement