Skip to content
GroupsTabResponseBuilder.java 1.8 KiB
Newer Older
Sonia Zorba's avatar
Sonia Zorba committed
package it.inaf.ia2.gms.controller;

import it.inaf.ia2.gms.authn.SessionData;
import it.inaf.ia2.gms.manager.GroupsManager;
import it.inaf.ia2.gms.manager.InvitedRegistrationManager;
import it.inaf.ia2.gms.manager.PermissionsManager;
Sonia Zorba's avatar
Sonia Zorba committed
import it.inaf.ia2.gms.model.Permission;
import it.inaf.ia2.gms.model.request.GroupsRequest;
Sonia Zorba's avatar
Sonia Zorba committed
import it.inaf.ia2.gms.model.response.GroupsTabResponse;
import it.inaf.ia2.gms.persistence.model.GroupEntity;
import it.inaf.ia2.gms.service.GroupsService;
import it.inaf.ia2.gms.service.GroupsTreeBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class GroupsTabResponseBuilder {

    @Autowired
    private SessionData session;

    @Autowired
    private PermissionsManager permissionsManager;

    @Autowired
    private GroupsManager groupsManager;
Sonia Zorba's avatar
Sonia Zorba committed

    @Autowired
    private GroupsService groupsService;

    @Autowired
    private GroupsTreeBuilder groupsListBuilder;
    @Autowired
    private InvitedRegistrationManager invitedRegistrationManager;

    public GroupsTabResponse getGroupsTab(GroupsRequest request) {
Sonia Zorba's avatar
Sonia Zorba committed

        GroupEntity group = groupsService.getGroupById(request.getGroupId());
        groupsManager.verifyUserCanReadGroup(group);
Sonia Zorba's avatar
Sonia Zorba committed

        GroupsTabResponse response = new GroupsTabResponse();

        response.setBreadcrumbs(groupsService.getBreadcrumbs(group.getPath()));

        Permission permission = permissionsManager.getCurrentUserPermission(group);
        response.setPermission(permission);
        response.setGroupsPanel(groupsListBuilder.listSubGroups(group, request, session.getUserId()));
        response.setLeaf(group.isLeaf());

        response.setInvitedRegistrations(invitedRegistrationManager.getInvitedRegistrationsForGroup(group));

Sonia Zorba's avatar
Sonia Zorba committed
        return response;
    }
}