Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53322b9f authored by Amith Yamasani's avatar Amith Yamasani Committed by Android Git Automerger
Browse files

am 41bb3455: Merge "Set the default user restrictions to disallow calling and sms" into lmp-dev

* commit '41bb3455':
  Set the default user restrictions to disallow calling and sms
parents c32105d7 41bb3455
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -720,6 +720,39 @@ public class UserManager {
        return guest;
    }

    /**
     * Creates a secondary user with the specified name and options and configures it with default
     * restrictions.
     * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
     *
     * @param name the user's name
     * @param flags flags that identify the type of user and other properties.
     * @see UserInfo
     *
     * @return the UserInfo object for the created user, or null if the user could not be created.
     * @hide
     */
    public UserInfo createSecondaryUser(String name, int flags) {
        try {
            UserInfo user = mService.createUser(name, flags);
            if (user == null) {
                return null;
            }
            Bundle userRestrictions = mService.getUserRestrictions(user.id);
            addDefaultUserRestrictions(userRestrictions);
            mService.setUserRestrictions(userRestrictions, user.id);
            return user;
        } catch (RemoteException re) {
            Log.w(TAG, "Could not create a user", re);
            return null;
        }
    }

    private static void addDefaultUserRestrictions(Bundle restrictions) {
        restrictions.putBoolean(DISALLOW_OUTGOING_CALLS, true);
        restrictions.putBoolean(DISALLOW_SMS, true);
    }

    /**
     * Creates a user with the specified name and options as a profile of another user.
     * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
+1 −1
Original line number Diff line number Diff line
@@ -571,7 +571,7 @@ public class UserSwitcherController {
                cancel();
            } else {
                dismiss();
                UserInfo user = mUserManager.createUser(
                UserInfo user = mUserManager.createSecondaryUser(
                        mContext.getString(R.string.user_new_user_name), 0 /* flags */);
                if (user == null) {
                    // Couldn't create user, most likely because there are too many, but we haven't
+18 −1
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ public class UserManagerService extends IUserManager.Stub {

    private static final int MIN_USER_ID = 10;

    private static final int USER_VERSION = 4;
    private static final int USER_VERSION = 5;

    private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms

@@ -462,6 +462,17 @@ public class UserManagerService extends IUserManager.Stub {
        }
    }

    /**
     * If default guest restrictions haven't been initialized yet, add the basic
     * restrictions.
     */
    private void initDefaultGuestRestrictions() {
        if (mGuestRestrictions.isEmpty()) {
            mGuestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, true);
            writeUserListLocked();
        }
    }

    @Override
    public Bundle getDefaultGuestRestrictions() {
        checkManageUsersPermission("getDefaultGuestRestrictions");
@@ -693,6 +704,11 @@ public class UserManagerService extends IUserManager.Stub {
            userVersion = 4;
        }

        if (userVersion < 5) {
            initDefaultGuestRestrictions();
            userVersion = 5;
        }

        if (userVersion < USER_VERSION) {
            Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to "
                    + USER_VERSION);
@@ -715,6 +731,7 @@ public class UserManagerService extends IUserManager.Stub {
        mUserRestrictions.append(UserHandle.USER_OWNER, restrictions);

        updateUserIdsLocked();
        initDefaultGuestRestrictions();

        writeUserListLocked();
        writeUserLocked(primary);