private void revokePermissions(final Namespace namespace) {
        final List<PermissionArgs> permissionArgsList = extractPermissionArgs(
                namespace,
                REVOKE_PERMISSION_ARG_NAME);

        permissionArgsList.forEach(permissionArgs -> {
            final AppPermission permission = AppPermission.getPermissionForName(permissionArgs.permissionName);
            final String userOrGroupId = permissionArgs.userOrGroupId;
            final String msg = LogUtil.message("Revoking application permission '{}' from '{}'",
                    permission, userOrGroupId);

            info(LOGGER, msg);

            final UserRef userOrGroup = getUserObject(
                    userOrGroupId, UserType.EITHER, REVOKE_PERMISSION_ARG_NAME);

            try {
                if (hasPermission(userOrGroup, permission)) {
                    userAppPermissionService.removePermission(
                            userOrGroup,
                            permission);

                    indentedInfo(LOGGER, LogUtil.message("Revoked application permission '{}' from '{}'",
                            permission, userOrGroup.toDisplayString()), "  ");

                    logAddOrRemovePermissionEvent(
                            userOrGroup,
                            permission,
                            true,
                            null,
                            false);
                } else {
                    final String failMsg = LogUtil.message("{} '{}' does not have permission '{}'",
                            userOrGroup.getType(),
                            userOrGroup.toDisplayString(),
                            permission);
                    indentedWarn(LOGGER, failMsg, "  ");

                    logAddOrRemovePermissionEvent(
                            userOrGroupId,
                            permission.getDisplayValue(),
                            false,
                            failMsg,
                            false);
                }
            } catch (Exception e) {
                LOGGER.debug("Error", e);
                logAddOrRemoveFromGroupEvent(
                        userOrGroupId,
                        permission.getDisplayValue(),
                        false,
                        e.getMessage(),
                        false);
                throw new RuntimeException("Error " + msg + ":" + e.getMessage(), e);
            }
        });
    }
Creates an account in the internal identity provider
<p>
e.g manage_users ../local.yml
--createUser admin
--createGroup Administrators
--addToGroup admin Administrators
--grantPermission Administrators Administrator
stroom-app/src/main/java/stroom/app/commands/ManageUsersCommand.java