1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef COMPONENTS_POLICY_CORE_COMMON_POLICY_TYPES_H_
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define COMPONENTS_POLICY_CORE_COMMON_POLICY_TYPES_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace policy {
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The scope of a policy flags whether it is meant to be applied to the current
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// user or to the machine.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum PolicyScope {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // USER policies apply to sessions of the current user.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POLICY_SCOPE_USER,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // MACHINE policies apply to any users of the current machine.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POLICY_SCOPE_MACHINE,
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The level of a policy determines its enforceability and whether users can
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// override it or not. The values are listed in increasing order of priority.
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum PolicyLevel {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // RECOMMENDED policies can be overridden by users. They are meant as a
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // default value configured by admins, that users can customize.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POLICY_LEVEL_RECOMMENDED,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // MANDATORY policies must be enforced and users can't circumvent them.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POLICY_LEVEL_MANDATORY,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace policy
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif  // COMPONENTS_POLICY_CORE_COMMON_POLICY_TYPES_H_
34