if (check_parameters_invalid(invocation, session_uid, subsession_id))
return;
+ if (subsession_exists(session_uid, subsession_id)) {
+ g_dbus_method_invocation_return_dbus_error(invocation,
+ get_dbus_error_mapping(SUBSESSION_ERROR_ALREADY_EXISTS), "Subsession already exists");
+ return;
+ }
+
do_add_user(session_uid, subsession_id, DirBackendAddRegularDir {});
g_dbus_method_invocation_return_value(invocation, nullptr);
return;
}
+ if (subsession_exists(session_uid, subsession_id)) {
+ g_dbus_method_invocation_return_dbus_error(invocation,
+ get_dbus_error_mapping(SUBSESSION_ERROR_ALREADY_EXISTS), "Subsession already exists");
+ return;
+ }
+
do_add_user(session_uid, subsession_id, DirBackendAddFixedSize {size_kB});
g_dbus_method_invocation_return_value(invocation, nullptr);
return;
}
+ if (!subsession_exists(session_uid, subsession_id)) {
+ g_dbus_method_invocation_return_dbus_error(invocation,
+ get_dbus_error_mapping(SUBSESSION_ERROR_NOT_AVAILABLE), "Subsession does not exist");
+ return;
+ }
+
do_remove_user(session_uid, subsession_id);
g_dbus_method_invocation_return_value(invocation, nullptr);