Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef LOGIN_MANAGER_DEVICE_POLICY_H_ | 5 #ifndef LOGIN_MANAGER_DEVICE_POLICY_H_ |
| 6 #define LOGIN_MANAGER_DEVICE_POLICY_H_ | 6 #define LOGIN_MANAGER_DEVICE_POLICY_H_ |
| 7 | 7 |
| 8 #include <glib.h> | |
| 8 #include <string> | 9 #include <string> |
| 9 | 10 |
| 10 #include <base/basictypes.h> | 11 #include <base/basictypes.h> |
| 11 #include <base/file_path.h> | 12 #include <base/file_path.h> |
| 12 | 13 |
| 13 #include "login_manager/bindings/device_management_backend.pb.h" | 14 #include "login_manager/bindings/device_management_backend.pb.h" |
| 14 | 15 |
| 15 namespace login_manager { | 16 namespace login_manager { |
| 17 class OwnerKey; | |
| 16 | 18 |
| 17 // This class holds device settings that are to be enforced across all users. | 19 // This class holds device settings that are to be enforced across all users. |
| 18 // | 20 // |
| 19 // If there is a policy on disk at creation time, we will load it | 21 // If there is a policy on disk at creation time, we will load it |
| 20 // along with its signature. A new policy and its attendant signature can | 22 // along with its signature. A new policy and its attendant signature can |
| 21 // be set at any time and persisted to disk on-demand. | 23 // be set at any time and persisted to disk on-demand. |
| 22 // | 24 // |
| 23 // THIS CLASS DOES NO SIGNATURE VALIDATION. | 25 // THIS CLASS DOES NO SIGNATURE VALIDATION. |
| 24 class DevicePolicy { | 26 class DevicePolicy { |
| 25 public: | 27 public: |
| 26 explicit DevicePolicy(const FilePath& policy_path); | 28 explicit DevicePolicy(const FilePath& policy_path); |
| 27 virtual ~DevicePolicy(); | 29 virtual ~DevicePolicy(); |
| 28 | 30 |
| 29 // Load the signed policy off of disk into |policy_|. | 31 // Load the signed policy off of disk into |policy_|. |
| 30 // Returns true unless there is a policy on disk and loading it fails. | 32 // Returns true unless there is a policy on disk and loading it fails. |
| 31 virtual bool LoadOrCreate(); | 33 virtual bool LoadOrCreate(); |
| 32 | 34 |
| 33 virtual bool Get(std::string* output) const; | 35 virtual const enterprise_management::PolicyFetchResponse& Get() const; |
|
gauravsh
2011/04/08 04:58:49
What does this do?
Chris Masone
2011/04/08 05:57:41
It gets a const reference to the PolicyFetchRespon
| |
| 34 | 36 |
| 35 // Persist |policy_| to disk at |policy_file_| | 37 // Persist |policy_| to disk at |policy_file_| |
| 36 // Returns false if there's an error while writing data. | 38 // Returns false if there's an error while writing data. |
| 37 virtual bool Persist(); | 39 virtual bool Persist(); |
| 38 | 40 |
| 41 virtual bool SerializeToString(std::string* output) const; | |
|
gauravsh
2011/04/08 04:58:49
what does this do?
Chris Masone
2011/04/08 05:57:41
Serializes the policy into the passed-in string ob
gauravsh
2011/04/08 18:07:47
Yeah, reading the full class definition provides t
| |
| 42 | |
| 39 // Clobber the stored policy with new data. | 43 // Clobber the stored policy with new data. |
| 40 virtual void Set(const enterprise_management::PolicyFetchResponse& policy); | 44 virtual void Set(const enterprise_management::PolicyFetchResponse& policy); |
| 41 | 45 |
| 46 // Assuming the current user has access to the owner private key | |
| 47 // (read: is the owner), this call whitelists |current_user_| and sets a | |
| 48 // property indicating |current_user_| is the owner in the current policy | |
| 49 // and schedules a PersistPolicy(). | |
| 50 // Returns false on failure, with |error| set appropriately. | |
| 51 // |error| can be NULL, should you wish to ignore the particulars. | |
| 52 bool StoreOwnerProperties(OwnerKey* key, | |
| 53 const std::string& current_user, | |
| 54 GError** error); | |
| 55 | |
| 42 static const char kDefaultPath[]; | 56 static const char kDefaultPath[]; |
| 57 static const char kDevicePolicyType[]; | |
|
gauravsh
2011/04/08 04:58:49
Maybe this is documented elsewhere but what is the
Chris Masone
2011/04/08 05:57:41
it is...I'll put a pointer to it here.
| |
| 43 | 58 |
| 44 private: | 59 private: |
| 45 enterprise_management::PolicyFetchResponse policy_; | 60 enterprise_management::PolicyFetchResponse policy_; |
| 46 const FilePath policy_path_; | 61 const FilePath policy_path_; |
| 47 | 62 |
| 48 DISALLOW_COPY_AND_ASSIGN(DevicePolicy); | 63 DISALLOW_COPY_AND_ASSIGN(DevicePolicy); |
| 49 }; | 64 }; |
| 50 } // namespace login_manager | 65 } // namespace login_manager |
| 51 | 66 |
| 52 #endif // LOGIN_MANAGER_DEVICE_POLICY_H_ | 67 #endif // LOGIN_MANAGER_DEVICE_POLICY_H_ |
| OLD | NEW |