+++ /dev/null
-// Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved
-// Use of this source code is governed by an apache 2.0 license that can be
-// found in the LICENSE file.
-
-#include "required_privileges_handler.h"
-#include "package_handler.h"
-
-#include <utility>
-
-#include "manifest_parser/manifest_util.h"
-#include "manifest_parser/utils/iri_util.h"
-#include "manifest_parser/utils/logging.h"
-#include "manifest_parser/values.h"
-
-namespace rpk {
-namespace parse {
-
-namespace {
-
-const char kRequiredPrivilegesKey[] = "manifest.required-privileges";
-const char kPrivilegeKey[] = "privilege";
-const char kPrivilegeTextKey[] = "#text";
-const char kPrivilegeTypeKey[] = "@type";
-
-const char kPrivilegeTypeDefault[] = "rpk";
-
-} // namespace
-
-bool RequiredPrivilegesHandler::Parse(
- const parser::Manifest& manifest,
- std::shared_ptr<parser::ManifestData>* output,
- std::string* error) {
- std::shared_ptr<RequiredPrivilegesInfo> required_privileges_info(
- new RequiredPrivilegesInfo());
- parser::Value* required_privileges_value = nullptr;
- if (!manifest.Get(kRequiredPrivilegesKey, &required_privileges_value))
- return true;
- parser::DictionaryValue* required_privileges_dict = nullptr;
- if (!required_privileges_value->GetAsDictionary(&required_privileges_dict)) {
- *error = "Failed to parse <privileges> tag";
- return false;
- }
- for (auto& item : parser::GetOneOrMany(required_privileges_dict,
- kPrivilegeKey, "")) {
- std::string privilege;
- std::string type = kPrivilegeTypeDefault;
- if (!item->GetString(kPrivilegeTextKey, &privilege) ||
- privilege.empty())
- continue;
- item->GetString(kPrivilegeTypeKey, &type);
- required_privileges_info->AddPrivilege(privilege, type);
- }
-
- *output = std::static_pointer_cast<parser::ManifestData>(
- required_privileges_info);
- return true;
-}
-
-bool RequiredPrivilegesHandler::Validate(
- const parser::ManifestData& data,
- const parser::ManifestDataMap&,
- std::string* error) const {
- return true;
-}
-
-std::string RequiredPrivilegesInfo::key() {
- return kRequiredPrivilegesKey;
-}
-
-std::string RequiredPrivilegesHandler::Key() const {
- return kRequiredPrivilegesKey;
-}
-
-} // namespace parse
-} // namespace rpk
+++ /dev/null
-// Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved
-// Use of this source code is governed by an apache 2.0 license that can be
-// found in the LICENSE file.
-
-#ifndef RPK_MANIFEST_HANDLERS_REQUIRED_PRIVILEGES_HANDLER_H_
-#define RPK_MANIFEST_HANDLERS_REQUIRED_PRIVILEGES_HANDLER_H_
-
-#include <memory>
-#include <set>
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "manifest_parser/manifest_handler.h"
-#include "manifest_parser/permission_types.h"
-#include "manifest_parser/values.h"
-
-namespace rpk {
-namespace parse {
-
-class RequiredPrivilegesInfo : public parser::ManifestData {
- public:
- using PrivilegesSet = std::set<std::pair<std::string, std::string>>;
-
- /**
- * @brief key
- * @param key string
- */
- static std::string key();
- /**
- * @brief GetPrivileges
- * @return PrivilegesSet
- */
- const PrivilegesSet& GetPrivileges() const {
- return privileges_;
- }
- /**
- * @brief AddPrivilege add privilege
- * @param privilege
- */
- void AddPrivilege(const std::string& privilege, const std::string& type) {
- privileges_.insert(std::make_pair(privilege, type));
- }
-
- private:
- PrivilegesSet privileges_;
-};
-
-/**
- * @brief The RequiredPrivilegesHandler class
- *
- * Handler of tizen-manifest.xml for xml elements:
- * <required-privileges>
- * \_ <privilege>
- */
-class RequiredPrivilegesHandler : public parser::ManifestHandler {
- public:
- bool Parse(
- const parser::Manifest& manifest,
- std::shared_ptr<parser::ManifestData>* output,
- std::string* error) override;
- bool Validate(
- const parser::ManifestData& data,
- const parser::ManifestDataMap& handlers_output,
- std::string* error) const override;
- std::string Key() const override;
-};
-
-} // namespace parse
-} // namespace rpk
-
-#endif // RPK_MANIFEST_HANDLERS_REQUIRED_PRIVILEGES_HANDLER_H_
#include "rpk_manifest_handlers/description_handler.h"
#include "rpk_manifest_handlers/feature_handler.h"
#include "rpk_manifest_handlers/package_handler.h"
-#include "rpk_manifest_handlers/required_privileges_handler.h"
namespace rpk {
namespace parse {
std::make_shared<DescriptionHandler>(),
std::make_shared<PackageHandler>(),
std::make_shared<AllowedPackageHandler>(),
- std::make_shared<RequiredPrivilegesHandler>(),
std::make_shared<FeatureHandler>(),
std::make_shared<DependenciesHandler>()
};