Search in sources :

Example 6 with FlagStudent

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);
}
Also used : FlagStudent(fi.otavanopisto.muikku.model.users.FlagStudent)

Example 7 with FlagStudent

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());
}
Also used : UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) FlagStudent(fi.otavanopisto.muikku.model.users.FlagStudent) Date(java.util.Date)

Example 8 with FlagStudent

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;
}
Also used : UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) ArrayList(java.util.ArrayList) FlagStudent(fi.otavanopisto.muikku.model.users.FlagStudent)

Example 9 with FlagStudent

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();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) FlagStudent(fi.otavanopisto.muikku.model.users.FlagStudent) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Example 10 with FlagStudent

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();
}
Also used : FlagStudent(fi.otavanopisto.muikku.model.users.FlagStudent) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Aggregations

FlagStudent (fi.otavanopisto.muikku.model.users.FlagStudent)12 UserSchoolDataIdentifier (fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier)6 EntityManager (javax.persistence.EntityManager)4 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)4 RESTPermit (fi.otavanopisto.security.rest.RESTPermit)3 Path (javax.ws.rs.Path)3 SchoolDataIdentifier (fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier)2 DELETE (javax.ws.rs.DELETE)2 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 GET (javax.ws.rs.GET)1