winix/functions/rmuser.cpp

90 lines
1.3 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2012-2014, Tomasz Sowa
* All rights reserved.
*
*/
#include "rmuser.h"
#include "core/log.h"
#include "core/misc.h"
#include "core/plugin.h"
#include "functions/functions.h"
namespace Winix
{
namespace Fun
{
RmUser::RmUser()
{
fun.url = L"rmuser";
}
bool RmUser::HasAccess()
{
return cur->session->puser && cur->session->puser->super_user;
}
bool RmUser::RemoveUser(long user_id)
{
User * puser = system->users.GetUser(user_id);
bool result = false;
if( puser )
{
name = puser->name;
if( system->users.Remove(user_id) )
{
result = true;
log << log2 << "RmUser: user id: " << user_id << " name: " << name << " was removed" << logend;
if( db->RemoveUser(user_id) != WINIX_ERR_OK )
log << log1 << "RmUser: I cannot remove a user id: " << user_id << " from database" << logend;
}
}
return result;
}
void RmUser::MakePost()
{
if( cur->session->puser )
{
long user_id;
if( cur->session->puser->super_user )
user_id = Tol(cur->request->PostVar(L"userid"));
else
user_id = cur->session->puser->id;
RemoveUser(user_id);
}
system->RedirectToLastItem();
}
void RmUser::MakeGet()
{
}
} // namespace
} // namespace Winix