Subsonic API: added deleteUser command

This commit is contained in:
emeric
2019-08-02 15:53:42 +02:00
parent faca3a499a
commit 1a1c523d14
+22 -2
View File
@@ -642,12 +642,11 @@ static
Response
handleDeletePlaylistRequest(RequestContext& context)
{
// Optional params
Id id {getMandatoryParameterAs<Id>(context.parameters, "id")};
if (id.type != Id::Type::Playlist)
throw Error {Error::CustomType::BadIdFormat};
auto transaction {context.dbSession.createSharedTransaction()};
auto transaction {context.dbSession.createUniqueTransaction()};
User::pointer user {User::getByLoginName(context.dbSession, context.userName)};
if (!user)
@@ -666,6 +665,26 @@ handleDeletePlaylistRequest(RequestContext& context)
return Response::createOkResponse();
}
static
Response
handleDeleteUserRequest(RequestContext& context)
{
std::string username {getMandatoryParameterAs<std::string>(context.parameters, "username")};
if (username == context.userName)
throw Error {Error::Code::UserNotAuthorized};
auto transaction {context.dbSession.createUniqueTransaction()};
User::pointer user {User::getByLoginName(context.dbSession, username)};
if (!user)
throw Error {Error::Code::RequestedDataNotFound};
user.remove();
return Response::createOkResponse();
}
static
Response
handleGetLicenseRequest(RequestContext& context)
@@ -1731,6 +1750,7 @@ static std::map<std::string, RequestEntryPointInfo> requestEntryPoints
{"/rest/createUser.view", {handleCreateUserRequest, true}},
{"/rest/deletePlaylist.view", {handleDeletePlaylistRequest, false}},
{"/rest/deleteShare.view", {handleNotImplementedRequest, false}},
{"/rest/deleteUser.view", {handleDeleteUserRequest, true}},
{"/rest/getAvatar.view", {handleNotImplementedRequest, false}},
{"/rest/getAlbumList.view", {handleGetAlbumListRequest, false}},
{"/rest/getAlbumList2.view", {handleGetAlbumList2Request, false}},