blob: c40bb516f12926798977fef730f8dfb996925afe [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module ash.mojom;
import "components/account_id/interfaces/account_id.mojom";
import "mojo/public/mojom/base/token.mojom";
import "ui/gfx/image/mojo/image.mojom";
// Matches user_manager::UserType.
enum UserType {
// Regular user, has a user name and password.
REGULAR,
// Guest user, logs in without authentication.
GUEST,
// Public account user, logs in without authentication. Available only if
// enabled through policy.
PUBLIC_ACCOUNT,
// Supervised user, logs in only with local authentication.
SUPERVISED,
// Kiosk app robot, logs in without authentication.
KIOSK,
// Child user, with supervised options.
CHILD,
// Android app in kiosk mode, logs in without authentication.
ARC_KIOSK,
// Active Directory user. Authenticates against Active Directory server.
ACTIVE_DIRECTORY,
};
// Data for a user's avatar.
struct UserAvatar {
gfx.mojom.ImageSkia image;
// The raw bytes for the avatar. Useful if the avatar is animated.
// TODO(crbug.com/770373): Use a shared buffer (mojo.Blob), as this may be
// large enough to congest IPC.
array<uint8> bytes;
};
// Info about a user. May be sent repeatedly for a single user because
// individual fields may change (e.g. the avatar image or custodians).
struct UserInfo {
UserType type;
signin.mojom.AccountId account_id;
mojo_base.mojom.Token? service_instance_group;
string display_name;
string display_email;
UserAvatar avatar;
// True if this user has a newly created profile (first time login on the
// device)
bool is_new_profile;
// True if the user's non-cryptohome data (wallpaper, avatar etc.) is
// ephemeral. See |UserManager::IsUserNonCryptohomeDataEphemeral| for details.
bool is_ephemeral;
// True if the user is also the device owner.
bool is_device_owner;
// True if the user has a gaia account.
bool has_gaia_account;
};