1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_USER_MANAGER_USER_TYPE_H_
#define COMPONENTS_USER_MANAGER_USER_TYPE_H_
#include <ostream>
#include <string_view>
#include "base/component_export.h"
namespace user_manager {
// The user type. Used in a histogram; do not modify existing types.
// When adding a new one, also update histograms/enums.xml. Note that types are
// not sorted by number but grouped by means instead.
enum class UserType {
// Regular user, has a user name, password and Gaia account. (@gmail.com,
// managed commercial and EDU accounts). These users are usually connected to
// Google services (sync, etc.). Could be ephemeral (data wiped on logout)
// depending on the device policy.
kRegular = 0,
// Child user, with supervised options. Same as Regular but has a user policy
// which is controlled by parents.
kChild = 6,
// Guest user, logs in without authentication. No Gaia account. Always
// ephemeral.
kGuest = 1,
// kRetailMode = 2, // deprecated
// Public account user, logs in without authentication. Available only if
// enabled through device policy. No Gaia account. Always ephemeral.
kPublicAccount = 3,
// kSupervisedDeprecated = 4,
// Kiosk users used to launch application in a single app mode. Logs in
// without authentications. No Gaia user account. Uses device robot account.
// Kiosk type for Chrome apps.
kKioskApp = 5,
// kArcKioskApp = 7, deprecated
// Kiosk type for Web apps (aka PWA - Progressive Web Apps).
kWebKioskApp = 9,
// Kiosk type for Isolated Web Apps (IWA)
kKioskIWA = 10,
// Active Directory user. Authenticates against Active Directory server. No
// Gaia account. Could be ephemeral depending on the device policy.
// kActiveDirectory = 8, // deprecated
// Alias for histogram.
kMaxValue = kKioskIWA,
};
// Stringifies UserType. Returns a C-style (i.e. \0-terminated) string literal.
// The returned value is for logging or also to be used for crash key in
// UserManager.
COMPONENT_EXPORT(USER_MANAGER_COMMON)
const char* UserTypeToString(UserType user_type);
// Operator overloading for logging.
inline std::ostream& operator<<(std::ostream& os, UserType user_type) {
return os << UserTypeToString(user_type);
}
} // namespace user_manager
#endif // COMPONENTS_USER_MANAGER_USER_TYPE_H_
|