Skip to content
GroupsTabResponseBuilder.java 1.44 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.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 it.inaf.ia2.gms.service.PermissionsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class GroupsTabResponseBuilder {

    @Autowired
    private SessionData session;

    @Autowired
    private PermissionsService permissionsService;

    @Autowired
    private GroupsService groupsService;

    @Autowired
    private GroupsTreeBuilder groupsListBuilder;
    public GroupsTabResponse getGroupsTab(GroupsRequest request) {
Sonia Zorba's avatar
Sonia Zorba committed

        GroupEntity group = groupsService.getGroupById(request.getGroupId());

        GroupsTabResponse response = new GroupsTabResponse();

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

        Permission currentNodePermissions = permissionsService.getUserPermissionForGroup(group, session.getUserId());
        response.setPermission(currentNodePermissions);

        response.setGroupsPanel(groupsListBuilder.listSubGroups(group, request, session.getUserId()));
        response.setLeaf(group.isLeaf());

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