mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-25 23:44:54 +01:00
get label by id with user and validate label exists on link to mindmap
This commit is contained in:
parent
c7674825a6
commit
e9ca68732e
@ -17,7 +17,7 @@ public interface LabelManager {
|
|||||||
List<Label> getAllLabels(@NotNull final User user);
|
List<Label> getAllLabels(@NotNull final User user);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
Label getLabelById(int id);
|
Label getLabelById(int id, @NotNull final User user);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
Label getLabelByTitle(@NotNull final String title, @NotNull final User user);
|
Label getLabelByTitle(@NotNull final String title, @NotNull final User user);
|
||||||
|
@ -29,19 +29,16 @@ public class LabelManagerImpl extends HibernateDaoSupport
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Label getLabelById(int id) {
|
public Label getLabelById(int id, @NotNull final User user) {
|
||||||
return getHibernateTemplate().get(Label.class, id);
|
List<Label> labels = getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where id=? and creator=?", new Object[]{id, user});
|
||||||
|
return getFirst(labels);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Label getLabelByTitle(@NotNull String title, @NotNull final User user) {
|
public Label getLabelByTitle(@NotNull String title, @NotNull final User user) {
|
||||||
Label result = null;
|
|
||||||
final List<Label> labels = getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where title=? and creator=?", new Object[]{title, user});
|
final List<Label> labels = getHibernateTemplate().find("from com.wisemapping.model.Label wisemapping where title=? and creator=?", new Object[]{title, user});
|
||||||
if (labels != null && !labels.isEmpty()) {
|
return getFirst(labels);
|
||||||
result = labels.get(0);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -49,5 +46,12 @@ public class LabelManagerImpl extends HibernateDaoSupport
|
|||||||
getHibernateTemplate().delete(label);
|
getHibernateTemplate().delete(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable private Label getFirst(List<Label> labels) {
|
||||||
|
Label result = null;
|
||||||
|
if (labels != null && !labels.isEmpty()) {
|
||||||
|
result = labels.get(0);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ public class LabelController extends BaseController {
|
|||||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
public void deleteLabelById(@PathVariable int id) throws WiseMappingException {
|
public void deleteLabelById(@PathVariable int id) throws WiseMappingException {
|
||||||
final User user = Utils.getUser();
|
final User user = Utils.getUser();
|
||||||
final Label label = labelService.getLabelById(id);
|
final Label label = labelService.getLabelById(id, user);
|
||||||
if (label == null) {
|
if (label == null) {
|
||||||
throw new LabelCouldNotFoundException("Label could not be found. Id: " + id);
|
throw new LabelCouldNotFoundException("Label could not be found. Id: " + id);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ package com.wisemapping.rest;
|
|||||||
|
|
||||||
import com.mangofactory.swagger.annotations.ApiIgnore;
|
import com.mangofactory.swagger.annotations.ApiIgnore;
|
||||||
import com.wisemapping.exceptions.ImportUnexpectedException;
|
import com.wisemapping.exceptions.ImportUnexpectedException;
|
||||||
|
import com.wisemapping.exceptions.LabelCouldNotFoundException;
|
||||||
import com.wisemapping.exceptions.MapCouldNotFoundException;
|
import com.wisemapping.exceptions.MapCouldNotFoundException;
|
||||||
import com.wisemapping.exceptions.MultipleSessionsOpenException;
|
import com.wisemapping.exceptions.MultipleSessionsOpenException;
|
||||||
import com.wisemapping.exceptions.SessionExpiredException;
|
import com.wisemapping.exceptions.SessionExpiredException;
|
||||||
@ -45,6 +46,7 @@ import com.wisemapping.rest.model.RestMindmapInfo;
|
|||||||
import com.wisemapping.rest.model.RestMindmapList;
|
import com.wisemapping.rest.model.RestMindmapList;
|
||||||
import com.wisemapping.security.Utils;
|
import com.wisemapping.security.Utils;
|
||||||
import com.wisemapping.service.CollaborationException;
|
import com.wisemapping.service.CollaborationException;
|
||||||
|
import com.wisemapping.service.LabelService;
|
||||||
import com.wisemapping.service.LockInfo;
|
import com.wisemapping.service.LockInfo;
|
||||||
import com.wisemapping.service.LockManager;
|
import com.wisemapping.service.LockManager;
|
||||||
import com.wisemapping.service.MindmapService;
|
import com.wisemapping.service.MindmapService;
|
||||||
@ -88,6 +90,10 @@ public class MindmapController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MindmapService mindmapService;
|
private MindmapService mindmapService;
|
||||||
|
|
||||||
|
@Qualifier("labelService")
|
||||||
|
@Autowired
|
||||||
|
private LabelService labelService;
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/json", "application/xml", "text/html"})
|
@RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/json", "application/xml", "text/html"})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public RestMindmap retrieve(@PathVariable int id) throws WiseMappingException {
|
public RestMindmap retrieve(@PathVariable int id) throws WiseMappingException {
|
||||||
@ -634,13 +640,18 @@ public class MindmapController extends BaseController {
|
|||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
public void addLabel(@RequestBody RestLabel restLabel, @RequestParam(required = true) String ids) throws WiseMappingException {
|
public void addLabel(@RequestBody RestLabel restLabel, @RequestParam(required = true) String ids) throws WiseMappingException {
|
||||||
int labelId = restLabel.getId();
|
int labelId = restLabel.getId();
|
||||||
|
final User user = Utils.getUser();
|
||||||
|
final Label delegated = restLabel.getDelegated();
|
||||||
|
delegated.setCreator(user);
|
||||||
|
final Label found = labelService.getLabelById(labelId, user);
|
||||||
|
if (found == null) {
|
||||||
|
throw new LabelCouldNotFoundException("Label could not be found. Id: " + labelId);
|
||||||
|
}
|
||||||
for (String id : ids.split(",")) {
|
for (String id : ids.split(",")) {
|
||||||
final int mindmapId = Integer.parseInt(id);
|
final int mindmapId = Integer.parseInt(id);
|
||||||
final Mindmap mindmap = findMindmapById(mindmapId);
|
final Mindmap mindmap = findMindmapById(mindmapId);
|
||||||
final Label label = mindmap.findLabel(labelId);
|
final Label label = mindmap.findLabel(labelId);
|
||||||
if (label == null) {
|
if (label == null) {
|
||||||
final Label delegated = restLabel.getDelegated();
|
|
||||||
delegated.setCreator(Utils.getUser());
|
|
||||||
mindmapService.addLabel(mindmap, delegated);
|
mindmapService.addLabel(mindmap, delegated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ public interface LabelService {
|
|||||||
@NotNull List<Label> getAll(@NotNull final User user);
|
@NotNull List<Label> getAll(@NotNull final User user);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
Label getLabelById(int id);
|
Label getLabelById(int id, @NotNull final User user);
|
||||||
|
|
||||||
public Label getLabelByTitle(@NotNull String title, @NotNull final User user);
|
public Label getLabelByTitle(@NotNull String title, @NotNull final User user);
|
||||||
|
|
||||||
|
@ -31,8 +31,8 @@ public class LabelServiceImpl implements LabelService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable
|
@Override @Nullable
|
||||||
public Label getLabelById(int id) {
|
public Label getLabelById(int id, @NotNull final User user) {
|
||||||
return labelManager.getLabelById(id);
|
return labelManager.getLabelById(id, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
Loading…
Reference in New Issue
Block a user