Search in sources :

Example 26 with User

use of fi.otavanopisto.muikku.schooldata.entity.User in project muikku by otavanopisto.

the class PyramusUserSchoolDataBridge method listUsersByEmail.

@Override
public List<User> listUsersByEmail(String email) {
    Map<Long, User> userMap = new HashMap<Long, User>();
    Long personId = null;
    for (Student student : pyramusClient.get("/students/students?email=" + email, Student[].class)) {
        userMap.put(student.getId(), createStudentEntity(student));
        personId = student.getPersonId();
    }
    for (StaffMember staffMember : pyramusClient.get("/staff/members?email=" + email, StaffMember[].class)) {
        userMap.put(staffMember.getId(), entityFactory.createEntity(staffMember));
        personId = staffMember.getPersonId();
    }
    List<User> result = new ArrayList<User>();
    if (personId != null) {
        Person person = findPyramusPerson(personId);
        if (userMap.containsKey(person.getDefaultUserId())) {
            result.add(userMap.remove(person.getDefaultUserId()));
        }
    }
    result.addAll(userMap.values());
    return result;
}
Also used : User(fi.otavanopisto.muikku.schooldata.entity.User) PyramusGroupUser(fi.otavanopisto.muikku.plugins.schooldatapyramus.entities.PyramusGroupUser) StudentGroupUser(fi.otavanopisto.pyramus.rest.model.StudentGroupUser) GroupUser(fi.otavanopisto.muikku.schooldata.entity.GroupUser) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Student(fi.otavanopisto.pyramus.rest.model.Student) StudentGroupStudent(fi.otavanopisto.pyramus.rest.model.StudentGroupStudent) StaffMember(fi.otavanopisto.pyramus.rest.model.StaffMember) Person(fi.otavanopisto.pyramus.rest.model.Person)

Example 27 with User

use of fi.otavanopisto.muikku.schooldata.entity.User in project muikku by otavanopisto.

the class PyramusUserSchoolDataBridge method createStudentEntities.

private List<User> createStudentEntities(Student... students) {
    Map<Long, StudyProgramme> studyProgrammeMap = new HashMap<Long, StudyProgramme>();
    List<User> users = new ArrayList<User>();
    for (Student student : students) {
        StudyProgramme studyProgramme;
        String nationality = null;
        String language = null;
        String municipality = null;
        String school = null;
        boolean hidden = false;
        if (student.getStudyProgrammeId() != null) {
            if (!studyProgrammeMap.containsKey(student.getStudyProgrammeId())) {
                StudyProgramme studyProgrammeO = pyramusClient.get("/students/studyProgrammes/" + student.getStudyProgrammeId(), StudyProgramme.class);
                if (studyProgrammeO != null)
                    studyProgrammeMap.put(student.getStudyProgrammeId(), studyProgrammeO);
            }
            studyProgramme = studyProgrammeMap.get(student.getStudyProgrammeId());
        } else {
            studyProgramme = null;
        }
        if (student.getNationalityId() != null) {
            Nationality nationalityO = pyramusClient.get("/students/nationalities/" + student.getNationalityId(), Nationality.class);
            if (nationalityO != null)
                nationality = nationalityO.getName();
        }
        if (student.getLanguageId() != null) {
            Language languageO = pyramusClient.get("/students/languages/" + student.getLanguageId(), Language.class);
            if (languageO != null)
                language = languageO.getName();
        }
        if (student.getMunicipalityId() != null) {
            Municipality municipalityO = pyramusClient.get("/students/municipalities/" + student.getMunicipalityId(), Municipality.class);
            if (municipalityO != null)
                municipality = municipalityO.getName();
        }
        if (student.getSchoolId() != null) {
            School schoolO = pyramusClient.get("/schools/schools/" + student.getSchoolId(), School.class);
            if (schoolO != null)
                school = schoolO.getName();
        }
        if (student.getPersonId() != null) {
            Person person = pyramusClient.get("/persons/persons/" + student.getPersonId(), Person.class);
            if (person != null)
                hidden = person.getSecureInfo() != null ? person.getSecureInfo() : false;
        }
        String curriculumIdentifier = student.getCurriculumId() != null ? identifierMapper.getCurriculumIdentifier(student.getCurriculumId()).toId() : null;
        // #3069: User has evaluation fees if their study program begins with Internetix/
        boolean evaluationFees = studyProgramme != null && StringUtils.startsWith(studyProgramme.getName(), "Internetix/");
        users.add(entityFactory.createEntity(student, studyProgramme, nationality, language, municipality, school, student.getStudyStartDate(), student.getStudyEndDate(), student.getStudyTimeEnd(), evaluationFees, hidden, curriculumIdentifier));
    }
    return users;
}
Also used : User(fi.otavanopisto.muikku.schooldata.entity.User) PyramusGroupUser(fi.otavanopisto.muikku.plugins.schooldatapyramus.entities.PyramusGroupUser) StudentGroupUser(fi.otavanopisto.pyramus.rest.model.StudentGroupUser) GroupUser(fi.otavanopisto.muikku.schooldata.entity.GroupUser) Municipality(fi.otavanopisto.pyramus.rest.model.Municipality) StudyProgramme(fi.otavanopisto.pyramus.rest.model.StudyProgramme) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Student(fi.otavanopisto.pyramus.rest.model.Student) StudentGroupStudent(fi.otavanopisto.pyramus.rest.model.StudentGroupStudent) Nationality(fi.otavanopisto.pyramus.rest.model.Nationality) School(fi.otavanopisto.pyramus.rest.model.School) Language(fi.otavanopisto.pyramus.rest.model.Language) Person(fi.otavanopisto.pyramus.rest.model.Person)

Example 28 with User

use of fi.otavanopisto.muikku.schooldata.entity.User in project muikku by otavanopisto.

the class UserRESTService method updateStudent.

@PUT
@Path("/students/{ID}")
@RESTPermit(handling = Handling.INLINE)
public Response updateStudent(@PathParam("ID") String id, Student student) {
    if (!sessionController.isLoggedIn()) {
        return Response.status(Status.FORBIDDEN).build();
    }
    SchoolDataIdentifier loggedUserIdentifier = sessionController.getLoggedUser();
    SchoolDataIdentifier studentIdentifier = SchoolDataIdentifier.fromId(id);
    if (studentIdentifier == null) {
        return Response.status(Response.Status.BAD_REQUEST).entity(String.format("Invalid studentIdentifier %s", id)).build();
    }
    if (!(Objects.equals(studentIdentifier.getIdentifier(), loggedUserIdentifier.getIdentifier()) && Objects.equals(studentIdentifier.getDataSource(), loggedUserIdentifier.getDataSource()))) {
        return Response.status(Status.FORBIDDEN).entity("Trying to modify non-logged-in student").build();
    }
    User user = userController.findUserByIdentifier(studentIdentifier);
    UserEntity userEntity = userEntityController.findUserEntityByUser(user);
    userEntityController.markAsUpdatedByStudent(userEntity);
    // TODO: update other fields too
    user.setMunicipality(student.getMunicipality());
    userController.updateUser(user);
    return Response.ok().entity(student).build();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) User(fi.otavanopisto.muikku.schooldata.entity.User) EnvironmentUser(fi.otavanopisto.muikku.model.users.EnvironmentUser) UserEntity(fi.otavanopisto.muikku.model.users.UserEntity) WorkspaceUserEntity(fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity) Path(javax.ws.rs.Path) RESTPermit(fi.otavanopisto.security.rest.RESTPermit) PUT(javax.ws.rs.PUT)

Example 29 with User

use of fi.otavanopisto.muikku.schooldata.entity.User in project muikku by otavanopisto.

the class UserRESTService method findUserBasicInfo.

@GET
@Path("/users/{ID}/basicinfo")
@RESTPermitUnimplemented
public Response findUserBasicInfo(@Context Request request, @PathParam("ID") String id) {
    if (!sessionController.isLoggedIn()) {
        return Response.status(Status.FORBIDDEN).build();
    }
    UserEntity userEntity = null;
    SchoolDataIdentifier userIdentifier = SchoolDataIdentifier.fromId(id);
    if (userIdentifier == null) {
        if (!StringUtils.isNumeric(id)) {
            return Response.status(Response.Status.BAD_REQUEST).entity(String.format("Invalid user id %s", id)).build();
        }
        userEntity = userEntityController.findUserEntityById(NumberUtils.createLong(id));
        userIdentifier = new SchoolDataIdentifier(userEntity.getDefaultIdentifier(), userEntity.getDefaultSchoolDataSource().getIdentifier());
    } else {
        userEntity = userEntityController.findUserEntityByUserIdentifier(userIdentifier);
    }
    if (userEntity == null) {
        return Response.status(Response.Status.NOT_FOUND).build();
    }
    EntityTag tag = new EntityTag(DigestUtils.md5Hex(String.valueOf(userEntity.getVersion())));
    ResponseBuilder builder = request.evaluatePreconditions(tag);
    if (builder != null) {
        return builder.build();
    }
    CacheControl cacheControl = new CacheControl();
    cacheControl.setMustRevalidate(true);
    schoolDataBridgeSessionController.startSystemSession();
    try {
        User user = userController.findUserByIdentifier(userIdentifier);
        if (user == null) {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
        // TODO: User image
        boolean hasImage = false;
        return Response.ok(new UserBasicInfo(userEntity.getId(), user.getFirstName(), user.getLastName(), user.getNickName(), user.getStudyProgrammeName(), hasImage, user.hasEvaluationFees(), user.getCurriculumIdentifier())).cacheControl(cacheControl).tag(tag).build();
    } finally {
        schoolDataBridgeSessionController.endSystemSession();
    }
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) UserBasicInfo(fi.otavanopisto.muikku.rest.model.UserBasicInfo) User(fi.otavanopisto.muikku.schooldata.entity.User) EnvironmentUser(fi.otavanopisto.muikku.model.users.EnvironmentUser) EntityTag(javax.ws.rs.core.EntityTag) CacheControl(javax.ws.rs.core.CacheControl) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder) UserEntity(fi.otavanopisto.muikku.model.users.UserEntity) WorkspaceUserEntity(fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity) Path(javax.ws.rs.Path) RESTPermitUnimplemented(fi.otavanopisto.muikku.rest.RESTPermitUnimplemented) GET(javax.ws.rs.GET)

Example 30 with User

use of fi.otavanopisto.muikku.schooldata.entity.User in project muikku by otavanopisto.

the class UserRESTService method createRestModel.

private fi.otavanopisto.muikku.rest.model.User createRestModel(UserEntity userEntity, User user) {
    // TODO: User Image
    boolean hasImage = false;
    String emailAddress = userEmailEntityController.getUserDefaultEmailAddress(userEntity, true);
    Date startDate = user.getStudyStartDate() != null ? Date.from(user.getStudyStartDate().toInstant()) : null;
    Date endDate = user.getStudyTimeEnd() != null ? Date.from(user.getStudyTimeEnd().toInstant()) : null;
    return new fi.otavanopisto.muikku.rest.model.User(userEntity.getId(), user.getFirstName(), user.getLastName(), user.getNickName(), hasImage, user.getNationality(), user.getLanguage(), user.getMunicipality(), user.getSchool(), emailAddress, startDate, endDate);
}
Also used : User(fi.otavanopisto.muikku.schooldata.entity.User) EnvironmentUser(fi.otavanopisto.muikku.model.users.EnvironmentUser) Date(java.util.Date)

Aggregations

User (fi.otavanopisto.muikku.schooldata.entity.User)48 UserEntity (fi.otavanopisto.muikku.model.users.UserEntity)35 SchoolDataIdentifier (fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier)30 Path (javax.ws.rs.Path)21 WorkspaceUserEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity)18 RESTPermit (fi.otavanopisto.security.rest.RESTPermit)17 ArrayList (java.util.ArrayList)16 UserSchoolDataIdentifier (fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier)14 WorkspaceEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceEntity)14 EnvironmentUser (fi.otavanopisto.muikku.model.users.EnvironmentUser)12 GET (javax.ws.rs.GET)12 HashMap (java.util.HashMap)11 WorkspaceUser (fi.otavanopisto.muikku.schooldata.entity.WorkspaceUser)10 Workspace (fi.otavanopisto.muikku.schooldata.entity.Workspace)9 Date (java.util.Date)8 GradingScale (fi.otavanopisto.muikku.schooldata.entity.GradingScale)7 GradingScaleItem (fi.otavanopisto.muikku.schooldata.entity.GradingScaleItem)7 WorkspaceGradingScale (fi.otavanopisto.muikku.plugins.evaluation.rest.model.WorkspaceGradingScale)6 PUT (javax.ws.rs.PUT)5 RestAssessment (fi.otavanopisto.muikku.plugins.evaluation.rest.model.RestAssessment)4