use of fi.otavanopisto.muikku.model.users.FlagStudent in project muikku by otavanopisto.
the class FlagController method deleteFlagCascade.
public void deleteFlagCascade(Flag flag) {
List<FlagStudent> flagStudents = flagStudentDAO.listByFlag(flag);
for (FlagStudent flagStudent : flagStudents) {
flagStudentDAO.delete(flagStudent);
}
deleteFlag(flag);
}
use of fi.otavanopisto.muikku.model.users.FlagStudent in project muikku by otavanopisto.
the class FlagController method flagStudent.
public FlagStudent flagStudent(Flag flag, SchoolDataIdentifier studentIdentifier) {
UserSchoolDataIdentifier studentSchoolDataIdentifier = userSchoolDataIdentifierController.findUserSchoolDataIdentifierBySchoolDataIdentifier(studentIdentifier);
if (studentSchoolDataIdentifier == null) {
logger.severe(String.format("Could not find school data user by identifier %s", studentIdentifier));
return null;
}
FlagStudent flagStudent = flagStudentDAO.findByFlagAndStudentIdentifier(flag, studentSchoolDataIdentifier);
if (flagStudent != null) {
return flagStudent;
}
return flagStudentDAO.create(flag, studentSchoolDataIdentifier, new Date());
}
use of fi.otavanopisto.muikku.model.users.FlagStudent in project muikku by otavanopisto.
the class FlagController method listByOwnedAndSharedStudentFlags.
public List<FlagStudent> listByOwnedAndSharedStudentFlags(SchoolDataIdentifier studentIdentifier, SchoolDataIdentifier userIdentifier) {
UserSchoolDataIdentifier userSchoolDataIdentifier = userSchoolDataIdentifierController.findUserSchoolDataIdentifierBySchoolDataIdentifier(userIdentifier);
if (userSchoolDataIdentifier == null) {
logger.severe(String.format("Could not find school data user by identifier %s", userIdentifier));
return Collections.emptyList();
}
UserSchoolDataIdentifier studentSchoolDataIdentifier = userSchoolDataIdentifierController.findUserSchoolDataIdentifierBySchoolDataIdentifier(studentIdentifier);
if (studentSchoolDataIdentifier == null) {
logger.severe(String.format("Could not find school data user by identifier %s", studentIdentifier));
return Collections.emptyList();
}
List<FlagStudent> flagStudents = flagStudentDAO.listByStudentIdentifier(studentSchoolDataIdentifier);
List<FlagStudent> result = new ArrayList<>(flagStudents.size());
for (FlagStudent flagStudent : flagStudents) {
if (hasFlagPermission(flagStudent.getFlag(), userIdentifier)) {
result.add(flagStudent);
}
}
return result;
}
use of fi.otavanopisto.muikku.model.users.FlagStudent in project muikku by otavanopisto.
the class UserRESTService method deleteStudentFlag.
@DELETE
@Path("/students/{STUDENTID}/flags/{ID}")
@RESTPermit(handling = Handling.INLINE, requireLoggedIn = true)
public Response deleteStudentFlag(@Context Request request, @PathParam("STUDENTID") String studentId, @PathParam("ID") Long id) {
if (!sessionController.isLoggedIn()) {
return Response.status(Status.FORBIDDEN).build();
}
SchoolDataIdentifier studentIdentifier = SchoolDataIdentifier.fromId(studentId);
if (studentIdentifier == null) {
return Response.status(Response.Status.BAD_REQUEST).entity(String.format("Invalid studentIdentifier %s", studentId)).build();
}
FlagStudent flagStudent = flagController.findFlagStudentById(id);
if (flagStudent == null) {
return Response.status(Response.Status.NOT_FOUND).entity(String.format("Flag not found %d", id)).build();
}
if (!flagController.hasFlagPermission(flagStudent.getFlag(), sessionController.getLoggedUser())) {
return Response.status(Status.FORBIDDEN).entity(String.format("You do not have permission to remove student flag %d", flagStudent.getId())).build();
}
flagController.unflagStudent(flagStudent);
return Response.noContent().build();
}
use of fi.otavanopisto.muikku.model.users.FlagStudent in project muikku by otavanopisto.
the class AcceptanceTestsRESTService method deleteStudentFlag.
@DELETE
@Path("/students/flags/{ID}")
@RESTPermit(handling = Handling.UNSECURED)
public Response deleteStudentFlag(@PathParam("ID") Long id) {
FlagStudent flagStudent = flagController.findFlagStudentById(id);
if (flagStudent == null) {
return Response.status(Response.Status.NOT_FOUND).entity(String.format("Flag not found %d", id)).build();
}
flagController.unflagStudent(flagStudent);
return Response.noContent().build();
}
Aggregations