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.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 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
ConfigurationUserRolesForm f =
(ConfigurationUserRolesForm
) form
;
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[]{
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 (1.5.0/docs/api/java/lang/Throwable.html">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
{
sm.
execute(RequestUtils.
getRequester(request, response
),
"AddUpdateRoleTranslation", args, names
);
UserRoleConfigImpl ur =
(UserRoleConfigImpl
) userRoleConfig
;
ur.
setDirty(false);
UserRoleProxy.
setDirty();
//f.setUserRoleConfigs(null);
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");
}
}