3 Commits

Author SHA1 Message Date
pepa b1818546c0 Uživatele a komisi nelze smazat, pokud jsou členem některého střediska,
nebo komise.
closes #178
2014-12-12 14:43:11 +01:00
pepa bc5a7a7c4c Uživateli už nelze odebrat roli "Uživatel"
closes #177
2014-12-08 14:17:36 +01:00
pepa 966c9033ef Opraveno generování URL záznamu do e-mailových zpráv.
closes #179
2014-12-08 14:13:25 +01:00
8 changed files with 57 additions and 4 deletions
@@ -30,9 +30,9 @@ public class RequirementUrlResolver implements EntityUrlResolver {
Requirement req = (Requirement)entity;
if (req.getKind() == Constants.REQ_TYPE_MATERIAL) {
return defaultUrl + Constants.URL_MAP.get(req) + "material/?select=" + String.valueOf(req.getId());
return defaultUrl + Constants.URL_MAP.get(req.getClass()) + "material/?select=" + String.valueOf(req.getId());
} else {
return defaultUrl + Constants.URL_MAP.get(req) + "services/?select=" + String.valueOf(req.getId());
return defaultUrl + Constants.URL_MAP.get(req.getClass()) + "services/?select=" + String.valueOf(req.getId());
}
}
@@ -0,0 +1,17 @@
package info.bukova.isspst.services.users;
import info.bukova.isspst.services.IsspstException;
public class DeleteUserException extends IsspstException {
/**
*
*/
private static final long serialVersionUID = -5326664758639660224L;
public DeleteUserException(String message) {
super(message);
setReason(message);
}
}
@@ -9,6 +9,7 @@ import info.bukova.isspst.services.AbstractService;
import info.bukova.isspst.services.StringXmlMarshaller;
//import info.bukova.isspst.services.LazyLoader;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import java.util.ArrayList;
import java.util.HashSet;
@@ -35,6 +36,8 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
private PasswordEncoder encoder;
@Autowired
private RoleService roleService;
@Autowired
private WorkgroupService workgroupService;
private StringXmlMarshaller<UserSettingsData> marshaller;
private AuthMethod authMethod;
@@ -216,4 +219,15 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
return authMethod;
}
@Override
public void delete(User entity) {
workgroupService.loadParents(entity);
if (entity.getParents().isEmpty()) {
super.delete(entity);
} else {
throw new DeleteUserException("UserIsInWorkgroup");
}
}
}
@@ -13,9 +13,11 @@ public class WorkgroupException extends IsspstException {
public final static String MSUT_HAS_CENTER = "RoleMustHasCentre";
public final static String MUST_HAS_WORKGROUP = "WorkgroupMustHasCentre";
public final static String CYCLIC_MEMBER = "CyclicMembership";
public final static String HAS_PARENT = "WorkgroupIsInWorkgroup";
public WorkgroupException(String message) {
super(message);
setReason(message);
}
}
@@ -248,6 +248,11 @@ public class WorkgroupServiceImpl extends AbstractOwnedService<Workgroup> implem
@Transactional
@PreAuthorize("hasPermission(this, 'PERM_DELETE')")
public void delete(Workgroup entity) {
Workgroup dbWg = dao.getById(entity.getId());
if (!dbWg.getParents().isEmpty()) {
throw new WorkgroupException(WorkgroupException.HAS_PARENT);
}
loadMembers(entity);
for (JobMapping m : entity.getMembers()) {
loadParents(m.getMember());
@@ -3,6 +3,7 @@ package info.bukova.isspst.ui;
import info.bukova.isspst.StringUtils;
import info.bukova.isspst.data.DataModel;
import info.bukova.isspst.filters.Filter;
import info.bukova.isspst.services.IsspstException;
import info.bukova.isspst.services.Service;
import java.util.ArrayList;
@@ -202,6 +203,18 @@ public class ListViewModel<T extends DataModel> extends DocumentViewModel
BindUtils.postNotifyChange(null, null,
ListViewModel.this, "dataBean");
BindUtils.postGlobalCommand(null, null, "reloadRelated", null);
} catch (IsspstException e) {
if (e.getReason() != null) {
Messagebox.show(
StringUtils.localize(e.getReason()),
StringUtils.localize("Error"),
Messagebox.OK, Messagebox.ERROR);
} else {
Messagebox.show(
StringUtils.localize("DbSaveError"),
StringUtils.localize("Error"),
Messagebox.OK, Messagebox.ERROR);
}
} catch (DataIntegrityViolationException e) {
Messagebox.show(StringUtils.localize("DbCannotDelete"), StringUtils.localize("Error"), Messagebox.OK, Messagebox.ERROR);
} catch (AccessDeniedException e) {
@@ -117,6 +117,7 @@ UsersGridColumnLogin=Login
UsersGridColumnPersonalID=Osobní číslo
UsersGridColumnFirstName=Jméno
UsersGridColumnSureName=Příjmení
UserIsInWorkgroup=Uživatele nelze smazat, protože je členem některé pracovní skupiny
AgendaMaterial=Skupiny materiálu
MaterialFormTitle=Skupina materiálu
@@ -125,7 +126,7 @@ AgendaServices=Skupiny služeb
ServiceFormTitle=Skupina služeb
AgendaWorkgroups=Střediska / komise
WorkgroupFormTitle=Pracvní skupina
WorkgroupFormTitle=Pracovní skupina
AgendaWorkflow=Procesy schválení
RequirementType=Typ požadavku:
@@ -354,3 +355,4 @@ WorkgroupFormMemberIsCenterMember=Některý ze členů přidávané komise je č
WorkgroupFormCannotAddUser=Uživatele nelze přidat
WorkgroupFormCannotAddWorkgroup=Komisi nelze přidat
WorkgroupFormOrderLimit=Limit nákupů
WorkgroupIsInWorkgroup=Komisi nelze smazat, protože je členem některého střediska
+1 -1
View File
@@ -96,7 +96,7 @@
<checkbox
label="@load(each.role.description)"
checked="@bind(each.checked)"
disabled="@load(vm.dataBean.username eq 'admin')" />
disabled="@load((vm.dataBean.username eq 'admin') or (each.role.authority eq 'ROLE_USER'))" />
</template>
</vbox>
</groupbox>