Protect Admin account from deactivation
<UserStory> EMP002 : Deactivate Employee </UserStory> <Changes> - Ensure admin account cannot be deactivated </Changes> <Review> Smitha Mohan </Review>
This commit is contained in:
@@ -98,13 +98,18 @@ void EmployeeManagementService::createEmployee(Enums::EmployeeType employeeType,
|
||||
|
||||
bool EmployeeManagementService::deactivateEmployee(const std::string& id)
|
||||
{
|
||||
util::enforceAuthorization(m_dataStore.getAuthenticatedEmployee()->getEmployeeType(), Enums::EmployeeType::ADMIN, Enums::EmployeeType::HR);
|
||||
auto& authenticatedEmployee = m_dataStore.getAuthenticatedEmployee();
|
||||
util::enforceAuthorization(authenticatedEmployee->getEmployeeType(), Enums::EmployeeType::ADMIN, Enums::EmployeeType::HR);
|
||||
auto& employee = m_dataStore.getEmployees();
|
||||
auto iterator = employee.find(id);
|
||||
if (iterator == employee.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (iterator->second->getEmployeeType() == Enums::EmployeeType::ADMIN)
|
||||
{
|
||||
throw std::runtime_error("Cannot deactivate Admin Account");
|
||||
}
|
||||
iterator->second->setEmployeeAccountStatus(Enums::AccountStatus::INACTIVE);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user