Rev 1306 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.domain;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.utils.RoleManager;
import java.io.Serializable;
import java.util.List;
/**
* @author: Duarte Santos
* @date: 09-05-2011
* @time: 23:10
* @email: a12564 [at] estgp [dot] pt
*/
public class SurveyImpl
extends Survey
implements IOwned, IConsultSurveyStats, IEdit
{
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(SurveyImpl.
class);
@
1.5.0/docs/api/java/lang/Override.html">Override
public boolean isOwnedBy
(GenericUser u
)
{
return isOwnedBy
(u,
false);
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public boolean isOwnedBy
(GenericUser u,
boolean transaction
)
{
return u.
getId() == getOwner
().
getId();
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public GenericUser getOwner
()
{
return super.
getOwner();
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public List
<String
> getOwnerRoles
() {
logger.
warn("Invoke not implemented method in class:" + getClass
().
getName());
return null;
}
public 1.5.0/docs/api/java/lang/String.html">String getChoosedOwnerRole
() {
logger.
warn("Invoke not implemented method in class:" + getClass
().
getName());
return null;
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable
() {
return getId
();
}
public boolean isTypeOf
(1.5.0/docs/api/java/lang/String.html">String type
)
{
return (getType
().
equals(type
));
}
public boolean canConsultSurveyStats
(GenericUserImpl u
)
{
return canConsultStats
(u,
false);
}
public boolean canConsultSurveyStats
(GenericUserImpl u,
boolean transaction
)
{
return canConsultStats
(u,transaction
);
}
public boolean canConsultStats
(GenericUserImpl user,
boolean transaction
)
{
return RoleManager.
hasRole(getStatsConsultRolesList
(), Globals.
ALL_ROLE) ||
(user
!=
null && (user.
hasRole(getStatsConsultRoles
()) || user.
isSuperuserOrAdmin())) || isOwnedBy
(user,transaction
);
}
public List
<String
> getStatsConsultRolesList
()
{
return RoleManager.
getRolesFromSerial(getStatsConsultRoles
());
}
public boolean canEdit
(GenericUserImpl u
)
{
return canEditSurvey
(u,
false);
}
public boolean canEdit
(GenericUserImpl u,
boolean transaction
)
{
return canEditSurvey
(u,
true);
}
private boolean canEditSurvey
(GenericUserImpl user,
boolean transaction
)
{
List
<SurveyStructuralNode
> childNodes =
((SurveyStructuralNodeImpl
)getStructuralNode
()).
getChildsStructuralNodes();
for(SurveyStructuralNode node : childNodes
)
{
for(SurveyResponse response : node.
getResponses())
{
return response.
getAnswers().
size() > 0
&& user
!=
null && (user.
isSuperuserOrAdmin() || isOwnedBy
(user,transaction
));
}
}
return false;
}
}