Skip to content

Commit

Permalink
organisaatio permission manager addition
Browse files Browse the repository at this point in the history
  • Loading branch information
oplekal committed Apr 3, 2020
1 parent 9ce7aa8 commit eb17e80
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ public ResponseEntity<JsonNode> getOrganisaatioRyhmatByOid(@PathVariable(value =
@RequestMapping(value = "/organisaatiovirkailijat/{oid}", method = GET)
@ResponseBody
public ResponseEntity<JsonNode> getOrganisaatioVirkailijat(@PathVariable(value = "oid") final String oid) {
return new ResponseEntity<>(kayttajanTietoService.getOrganisaatioVirkailijat(Sets.newHashSet(oid)), HttpStatus.OK);
return new ResponseEntity<>(kayttajanTietoService.getOrganisaatioVirkailijat(oid), HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ public interface KayttajanTietoService {
@PreAuthorize("isAuthenticated()")
KayttajanProjektitiedotDto haePerusteprojekti(String oid, Long projektiId);

@PreAuthorize("isAuthenticated()")
JsonNode getOrganisaatioVirkailijat(Set<String> organisaatioOids);
@PreAuthorize("hasPermission(#organisaatioOid, 'organisaatio', new String[]{'LUKU'})")
JsonNode getOrganisaatioVirkailijat(String organisaatioOid);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Sets;
import fi.vm.sade.eperusteet.domain.Perusteprojekti;
import fi.vm.sade.eperusteet.dto.kayttaja.KayttajanProjektitiedotDto;
import fi.vm.sade.eperusteet.dto.kayttaja.KayttajanTietoDto;
Expand Down Expand Up @@ -224,12 +225,12 @@ public KayttajanProjektitiedotDto haePerusteprojekti(String oid, Long projektiId
}

@Override
public JsonNode getOrganisaatioVirkailijat(Set<String> organisaatioOids) {
public JsonNode getOrganisaatioVirkailijat(String organisaatioOid) {
OphHttpClient client = restClientFactory.get(koServiceUrl, true);
String url = koServiceUrl + VIRKAILIJA_HAKU;

Map<String, Object> criteria = new HashMap<>();
criteria.put("organisaatioOids", organisaatioOids);
criteria.put("organisaatioOids", Sets.newHashSet(organisaatioOid));
criteria.put("duplikaatti", false);
criteria.put("passivoitu", false);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import fi.vm.sade.eperusteet.domain.ReferenceableEntity;
import fi.vm.sade.eperusteet.service.security.PermissionManager.Permission;
import fi.vm.sade.eperusteet.service.security.PermissionManager.Target;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ public enum Target {
PERUSTEENOSA("perusteenosa"),
TUTKINNONOSAVIITE("tutkinnonosaviite"),
PERUSTEENOSAVIITE("perusteenosaviite"),
TIEDOTE("tiedote");
TIEDOTE("tiedote"),
ORGANISAATIO("organisaatio");

private final String target;

Expand Down Expand Up @@ -317,6 +318,18 @@ public String toString() {
allowedRolesTmp.put(Target.ARVIOINTIASTEIKKO, tmp);
}

// Organisaatio
{
Map<ProjektiTila, Map<Permission, Set<String>>> tmp = new IdentityHashMap<>();
Map<Permission, Set<String>> perm = Maps.newHashMap();
perm.put(LUONTI, r0);
perm.put(LUKU, r3);
perm.put(MUOKKAUS, r0);
perm.put(POISTO, r0);
tmp.put(null, perm);
allowedRolesTmp.put(Target.ORGANISAATIO, tmp);
}

if (LOG.isTraceEnabled()) {
assert (allowedRolesTmp.keySet().containsAll(EnumSet.allOf(Target.class)));
for (Map.Entry<Target, Map<ProjektiTila, Map<Permission, Set<String>>>> t : allowedRolesTmp.entrySet()) {
Expand Down Expand Up @@ -357,6 +370,10 @@ public boolean hasPermission(Authentication authentication, Serializable targetI
return hasAnyRole(authentication, getAllowedRoles(targetType, permission));
}

if (Target.ORGANISAATIO.equals(targetType)) {
return hasAnyRole(authentication, String.valueOf(targetId), getAllowedRoles(targetType, permission));
}

if (Target.TUTKINNONOSAVIITE.equals(targetType)) {
// Haetaan perusteen osa mihin viitataan osaviitteessä ja jatketaan luvan tutkimista perusteen osan tiedoilla.
TutkinnonOsaViite t = viiteRepository.findOne((Long) targetId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public List<KayttajanTietoDto> haeKayttajatiedot(List<String> oid) {
}

@Override
public JsonNode getOrganisaatioVirkailijat(Set<String> organisaatioOids) {
public JsonNode getOrganisaatioVirkailijat(String organisaatioOids) {
return null;
}

Expand Down

0 comments on commit eb17e80

Please sign in to comment.