package pt.estgp.estgweb.web.controllers.configuration;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.UserRoleConfig;
import pt.estgp.estgweb.domain.UserRoleConfigImpl;
import pt.estgp.estgweb.services.users.ReplaceRoleResult;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.filters.UserRoleProxy;
import pt.estgp.estgweb.web.form.configuration.ConfigurationUserRolesForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class UserRolesController
extends ApplicationDispatchController
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(UserRolesController.
class);
public ActionForward addNew
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws ServletException
{
UserRoleConfigImpl role = DomainObjectFactory.
createUserRoleConfigImpl();
role.
setDirty(true);
ConfigurationUserRolesForm f =
(ConfigurationUserRolesForm
) form
;
f.
getUserRolesConfig().
add(0,role
);
return mapping.
findForward("userRoles");
}
/*public ActionForward saveAllDirty(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable {
ConfigurationUserRolesForm f = (ConfigurationUserRolesForm) form;
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{
f.getUserRolesConfig()
};
try
{
sm.execute(RequestUtils.getRequester(request, response), "AddUpdateDirtyRolesTranslation", args, names);
UserRoleProxy.setDirty();
f.setUserRoleConfigs(null);
addMessage(request, "configuration.roles.saved");
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
return mapping.findForward("userRoles");
}
*/
public ActionForward saveUserRole
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
ConfigurationUserRolesForm f =
(ConfigurationUserRolesForm
) form
;
UserRoleConfig userRoleConfig =
null;
long idPosChoosed = f.
getId();
for(UserRoleConfig u : f.
getUserRolesConfig())
{
UserRoleConfigImpl ur =
(UserRoleConfigImpl
) u
;
if(ur.
getPosForId() == idPosChoosed
)
{
userRoleConfig = ur
;
break;
}
}
if(userRoleConfig ==
null)
return mapping.
findForward("userRoles");
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{
userRoleConfig
};
try
{
ReplaceRoleResult replaceRoleResult =
(ReplaceRoleResult
)
sm.
execute(
RequestUtils.
getRequester(request, response
),
"AddUpdateRoleTranslation", args, names
);
UserRoleConfigImpl ur =
(UserRoleConfigImpl
) userRoleConfig
;
ur.
setDirty(false);
UserRoleProxy.
setDirty();
ur.
setId(replaceRoleResult.
updatedUserRoleConfig.
getId());
if(evaluateUpdateRoleResult
(this,request, replaceRoleResult
))
{
addMessage
(request,
"configuration.role.saved",ur.
getValue());
}
}
catch (FilterChainFailedException e
)
{
return mapping.
findForward("error401");
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e, e
);
throw e
;
}
return mapping.
findForward("userRoles");
}
public static boolean evaluateUpdateRoleResult
(ApplicationDispatchController controllerFrom,HttpServletRequest request, ReplaceRoleResult replaceRoleResult
) {
if(replaceRoleResult.
roleKeyAlreadyExist)
{
controllerFrom.
addError(request,
"configuration.roles.already.exist",replaceRoleResult.
requestedNewRole);
return false;
}
if(replaceRoleResult.
afetectedUsers > 0)
controllerFrom.
addMessage(request,
"configuration.roles.affected.users",
"" + replaceRoleResult.
afetectedUsers);
if(replaceRoleResult.
afetectedCoursesValidatePrograms > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedCoursesValidatePrograms +
" Cursos afetados no papel das comissões");
if(replaceRoleResult.
afetectedDepartmentsDirectors > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedDepartmentsDirectors +
" departamentos afetados no papel dos directores");
if(replaceRoleResult.
afetectedDepartmentsBoards > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedDepartmentsBoards +
" departamentos afetados no papel dos membros da direcção");
if(replaceRoleResult.
afetectedSchoolsDirectors > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsDirectors +
" escolas afetadas no papel dos directores");
if(replaceRoleResult.
afetectedSchoolsBoard > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsBoard +
" escolas afetadas no papel do board da direcção");
if(replaceRoleResult.
afetectedSchoolsSecretario > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsSecretario +
" escolas afetadas no papel dos secretários");
if(replaceRoleResult.
afetectedSchoolsPresidentPedagogico > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsPresidentPedagogico +
" escolas afetadas no papel dos presidentes do pedagógico");
if(replaceRoleResult.
afetectedSchoolsMemberPedagogico > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsMemberPedagogico +
" escolas afetadas no papel dos membros do pedagógico");
if(replaceRoleResult.
afetectedSchoolsSecretarioPedagogico > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsSecretarioPedagogico +
" escolas afetadas no papel dos secretários do pedagógico");
if(replaceRoleResult.
afetectedSchoolsPresidentCtc > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsPresidentCtc +
" escolas afetadas no papel dos presidentes do CTC");
if(replaceRoleResult.
afetectedSchoolsMemberCtc > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsMemberCtc +
" escolas afetadas no papel dos membros do CTC");
if(replaceRoleResult.
afetectedSchoolsSecretarioCtc > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afetectedSchoolsSecretarioCtc +
" escolas afetadas no papel dos secretários do CTC");
if(replaceRoleResult.
afectedEventClassManagers > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afectedEventClassManagers +
" gestores de eventos afetados");
if(replaceRoleResult.
afectedActorPoolRoles > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afectedActorPoolRoles +
" Papeis em Pools de Processos BPMN afetados");
if(replaceRoleResult.
afectedActorPoolRolesInstances > 0)
controllerFrom.
addMessageAsString(request, replaceRoleResult.
afectedActorPoolRolesInstances +
" Papeis em Instancias de Pools de Processos BPMN afetados");
return true;
}
public ActionForward checkNewRoles
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{};
try
{
1.5.0/docs/api/java/lang/Integer.html">Integer newRoles =
(1.5.0/docs/api/java/lang/Integer.html">Integer) sm.
execute(RequestUtils.
getRequester(request, response
),
"RefreshNewStandardRoles", args, names
);
addMessage
(request,
"configuration.role.refreshed",
""+newRoles
);
UserRoleProxy.
setDirty();
}
catch (FilterChainFailedException e
)
{
return mapping.
findForward("error401");
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e, e
);
throw e
;
}
return mapping.
findForward("userRoles");
}
}