package fi.otavanopisto.pyramus.views.system.setupwizard;
import java.util.List;
import org.apache.commons.codec.digest.DigestUtils;
import fi.internetix.smvc.controllers.PageRequestContext;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.dao.base.PersonDAO;
import fi.otavanopisto.pyramus.dao.users.InternalAuthDAO;
import fi.otavanopisto.pyramus.dao.users.StaffMemberDAO;
import fi.otavanopisto.pyramus.dao.users.UserIdentificationDAO;
import fi.otavanopisto.pyramus.domainmodel.base.Person;
import fi.otavanopisto.pyramus.domainmodel.users.InternalAuth;
import fi.otavanopisto.pyramus.domainmodel.users.Role;
import fi.otavanopisto.pyramus.domainmodel.users.StaffMember;
import fi.otavanopisto.pyramus.domainmodel.users.User;
import fi.otavanopisto.pyramus.framework.UserRole;
public class AdminPasswordSetupWizardViewController extends SetupWizardController {
public AdminPasswordSetupWizardViewController() {
super("adminpassword");
}
@Override
public void setup(PageRequestContext requestContext) throws SetupWizardException {
}
@Override
public void save(PageRequestContext requestContext) throws SetupWizardException {
String username = requestContext.getString("username");
String password = requestContext.getString("password1");
String firstName = requestContext.getString("firstName");
String lastName = requestContext.getString("lastName");
String passwordMD5 = DigestUtils.md5Hex(password);
StaffMemberDAO userDAO = DAOFactory.getInstance().getStaffMemberDAO();
InternalAuthDAO internalAuthDAO = DAOFactory.getInstance().getInternalAuthDAO();
PersonDAO personDAO = DAOFactory.getInstance().getPersonDAO();
UserIdentificationDAO userIdentificationDAO = DAOFactory.getInstance().getUserIdentificationDAO();
InternalAuth internalAuth = internalAuthDAO.create(username, passwordMD5);
Person person = personDAO.create(null, null, null, null, Boolean.FALSE);
userIdentificationDAO.create(person, "internal", String.valueOf(internalAuth.getId()));
User user = userDAO.create(firstName, lastName, Role.ADMINISTRATOR, person, false);
personDAO.updateDefaultUser(person, user);
}
@Override
public boolean isInitialized(PageRequestContext requestContext) throws SetupWizardException {
StaffMemberDAO userDAO = DAOFactory.getInstance().getStaffMemberDAO();
return !userDAO.listAll().isEmpty();
}
@Override
public UserRole[] getAllowedRoles() {
StaffMemberDAO userDAO = DAOFactory.getInstance().getStaffMemberDAO();
List<StaffMember> users = userDAO.listAll();
if (users.isEmpty()) {
return new UserRole[] { UserRole.EVERYONE };
} else {
return super.getAllowedRoles();
}
}
}