Commit 0c7fdc60 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added PermissionsController and search user functionality

parent 9574e429
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,7 @@ public class SessionData {
    public void init() {
    public void init() {
        CustomAuthenticationData authn = (CustomAuthenticationData) ((OAuth2Authentication) request.getUserPrincipal()).getUserAuthentication();
        CustomAuthenticationData authn = (CustomAuthenticationData) ((OAuth2Authentication) request.getUserPrincipal()).getUserAuthentication();
        userId = (String) authn.getPrincipal();
        userId = (String) authn.getPrincipal();
        accessToken = (String) authn.getAttributes().get("access_token");
        accessToken = (String) authn.getAccessToken().getValue();


        if (!usersRepository.findById(userId).isPresent()) {
        if (!usersRepository.findById(userId).isPresent()) {
            User user = new User();
            User user = new User();
+0 −3
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.controller;
package it.inaf.ia2.gms.controller;


import it.inaf.ia2.gms.authn.SessionData;
import it.inaf.ia2.gms.authn.SessionData;
import it.inaf.ia2.gms.exception.BadRequestException;
import it.inaf.ia2.gms.model.CreateGroupRequest;
import it.inaf.ia2.gms.model.CreateGroupRequest;
import it.inaf.ia2.gms.model.GroupNode;
import it.inaf.ia2.gms.model.GroupNode;
import it.inaf.ia2.gms.model.GroupsModelRequest;
import it.inaf.ia2.gms.model.GroupsModelRequest;
@@ -14,9 +13,7 @@ import it.inaf.ia2.gms.persistence.model.User;
import it.inaf.ia2.gms.service.GroupsModelService;
import it.inaf.ia2.gms.service.GroupsModelService;
import it.inaf.ia2.gms.service.GroupsService;
import it.inaf.ia2.gms.service.GroupsService;
import it.inaf.ia2.gms.service.UsersService;
import it.inaf.ia2.gms.service.UsersService;
import java.util.HashMap;
import java.util.List;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatus;
+36 −0
Original line number Original line Diff line number Diff line
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.persistence.model.User;
import it.inaf.ia2.gms.service.PermissionsService;
import it.inaf.ia2.gms.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PermissionsController {

    @Autowired
    private SessionData session;

    @Autowired
    private UsersService usersService;
    
    @Autowired
    private PermissionsService permissionsService;

    @DeleteMapping(value = "/permission", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResponseEntity deletePermission(@RequestParam("user") String userId, @RequestParam("group") String group, @RequestParam("permission") Permission permission) {
        User user = getUser();
        return null;
    }

    private User getUser() {
        return usersService.getUserById(session.getUserId());
    }
}
+23 −0
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.controller;

import it.inaf.ia2.gms.model.RapUser;
import it.inaf.ia2.gms.rap.RapClient;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UsersController {

    @Autowired
    private RapClient rapClient;

    @GetMapping(value = "users", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResponseEntity<List<RapUser>> searchUsers(@RequestParam("search") String searchText) {
        return ResponseEntity.ok(rapClient.searchUsers(searchText));
    }
}
+27 −0
Original line number Original line Diff line number Diff line
@@ -4,6 +4,9 @@ public class Identity {


    private IdentityType type;
    private IdentityType type;
    private String email;
    private String email;
    private String name;
    private String surname;
    private boolean primary;


    public IdentityType getType() {
    public IdentityType getType() {
        return type;
        return type;
@@ -20,4 +23,28 @@ public class Identity {
    public void setEmail(String email) {
    public void setEmail(String email) {
        this.email = email;
        this.email = email;
    }
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public boolean isPrimary() {
        return primary;
    }

    public void setPrimary(boolean primary) {
        this.primary = primary;
    }
}
}
Loading