roles.cpp 825 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "roles.h"
  2. Roles::Roles()
  3. {
  4. }
  5. struct Roles::role Roles::get ( int role_id )
  6. {
  7. return this->id2role[role_id];
  8. }
  9. void Roles::clear()
  10. {
  11. this->id2role.clear();
  12. this->list.clear();
  13. }
  14. void Roles::add ( QJsonObject json_role )
  15. {
  16. struct role role;
  17. role.id = json_role["id"].toInt();
  18. role.name = json_role["name"].toString();
  19. role.assignable = json_role["assignable"].toBool();
  20. QJsonArray json_permissions = json_role["permissions"].toArray();
  21. role.permissions.clear();
  22. foreach ( const QJsonValue & perm_val, json_permissions )
  23. role.permissions.insert ( perm_val.toString(), true );
  24. this->list.append ( role );
  25. this->id2role.insert ( role.id, role );
  26. }
  27. void Roles::set ( QJsonArray json_array )
  28. {
  29. this->clear();
  30. foreach ( const QJsonValue & val, json_array )
  31. this->add ( val.toObject() );
  32. }