Index: device_policy.h |
diff --git a/device_policy.h b/device_policy.h |
index 9d1c705ccad196639e8bd8f4f83fc3f17dcca030..c58760f93dc7167a07daeac77c56d23365f594c4 100644 |
--- a/device_policy.h |
+++ b/device_policy.h |
@@ -5,6 +5,7 @@ |
#ifndef LOGIN_MANAGER_DEVICE_POLICY_H_ |
#define LOGIN_MANAGER_DEVICE_POLICY_H_ |
+#include <glib.h> |
#include <string> |
#include <base/basictypes.h> |
@@ -13,6 +14,7 @@ |
#include "login_manager/bindings/device_management_backend.pb.h" |
namespace login_manager { |
+class OwnerKey; |
// This class holds device settings that are to be enforced across all users. |
// |
@@ -30,16 +32,30 @@ class DevicePolicy { |
// Returns true unless there is a policy on disk and loading it fails. |
virtual bool LoadOrCreate(); |
- virtual bool Get(std::string* output) const; |
+ virtual const enterprise_management::PolicyFetchResponse& Get() const; |
// Persist |policy_| to disk at |policy_file_| |
// Returns false if there's an error while writing data. |
virtual bool Persist(); |
+ virtual bool SerializeToString(std::string* output) const; |
+ |
// Clobber the stored policy with new data. |
virtual void Set(const enterprise_management::PolicyFetchResponse& policy); |
+ // Assuming the current user has access to the owner private key |
+ // (read: is the owner), this call whitelists |current_user_| and sets a |
+ // property indicating |current_user_| is the owner in the current policy |
+ // and schedules a PersistPolicy(). |
+ // Returns false on failure, with |error| set appropriately. |
+ // |error| can be NULL, should you wish to ignore the particulars. |
+ bool StoreOwnerProperties(OwnerKey* key, |
+ const std::string& current_user, |
+ GError** error); |
+ |
static const char kDefaultPath[]; |
+ // Format of this string is documented in device_management_backend.proto. |
+ static const char kDevicePolicyType[]; |
private: |
enterprise_management::PolicyFetchResponse policy_; |