use of org.activityinfo.shared.dto.UserPermissionDTO in project activityinfo by bedatadriven.
the class DbUserEditor method save.
private void save() {
BatchCommand batch = new BatchCommand();
for (Record record : store.getModifiedRecords()) {
batch.add(new UpdateUserPermissions(db.getId(), (UserPermissionDTO) record.getModel()));
}
dispatcher.execute(batch, new MaskingAsyncMonitor(this, I18N.CONSTANTS.saving()), new AsyncCallback<BatchResult>() {
@Override
public void onFailure(Throwable caught) {
// handled by monitor
}
@Override
public void onSuccess(BatchResult result) {
store.commitChanges();
}
});
}
use of org.activityinfo.shared.dto.UserPermissionDTO in project activityinfo by bedatadriven.
the class UpdateUserPermissionsHandler method execute.
@Override
public CommandResult execute(UpdateUserPermissions cmd, User executingUser) throws CommandException {
UserDatabase database = databaseDAO.findById(cmd.getDatabaseId());
UserPermissionDTO dto = cmd.getModel();
/*
* First check that the current user has permission to add users to to
* the queries
*/
boolean isOwner = executingUser.getId() == database.getOwner().getId();
if (!isOwner) {
verifyAuthority(cmd, database.getPermissionByUser(executingUser));
}
User user = null;
if (userDAO.doesUserExist(dto.getEmail())) {
user = userDAO.findUserByEmail(dto.getEmail());
}
if (user == null) {
user = createNewUser(executingUser, dto, cmd.getHost());
}
/*
* Does the permission record exist ?
*/
UserPermission perm = database.getPermissionByUser(user);
if (perm == null) {
perm = new UserPermission(database, user);
doUpdate(perm, dto, isOwner, database.getPermissionByUser(executingUser));
permDAO.persist(perm);
} else {
doUpdate(perm, dto, isOwner, database.getPermissionByUser(executingUser));
}
return null;
}
use of org.activityinfo.shared.dto.UserPermissionDTO in project activityinfo by bedatadriven.
the class DbUserExport method createDataRows.
private void createDataRows(Sheet sheet) {
((HSSFSheet) sheet).createDrawingPatriarch();
int rowIndex = 2;
for (UserPermissionDTO user : users) {
Row row = sheet.createRow(rowIndex++);
int column = 0;
createCell(row, column++, user.getName());
createCell(row, column++, user.getEmail());
createCell(row, column++, String.valueOf(user.getPartner()));
createCell(row, column++, String.valueOf(user.getAllowView()));
createCell(row, column++, String.valueOf(user.getAllowViewAll()));
createCell(row, column++, String.valueOf(user.getAllowDesign()));
createCell(row, column++, String.valueOf(user.getAllowEdit()));
createCell(row, column++, String.valueOf(user.getAllowEditAll()));
createCell(row, column++, String.valueOf(user.getAllowManageUsers()));
createCell(row, column++, String.valueOf(user.getAllowManageAllUsers()));
}
}
use of org.activityinfo.shared.dto.UserPermissionDTO in project activityinfo by bedatadriven.
the class UpdateUserPermissionsHandlerTest method testVerifyAuthorityForEditPermissions.
/**
* Asserts that someone with ManageUsersPermission will be permitted to
* grant some one edit rights.
*/
@Test
public void testVerifyAuthorityForEditPermissions() throws IllegalAccessCommandException {
UserPermission executingUserPermissions = new UserPermission();
executingUserPermissions.setPartner(NRC);
executingUserPermissions.setAllowManageUsers(true);
UserPermissionDTO dto = new UserPermissionDTO();
dto.setPartner(NRC_DTO);
dto.setAllowView(true);
dto.setAllowEdit(true);
UpdateUserPermissions cmd = new UpdateUserPermissions(1, dto);
UpdateUserPermissionsHandler.verifyAuthority(cmd, executingUserPermissions);
}
use of org.activityinfo.shared.dto.UserPermissionDTO in project activityinfo by bedatadriven.
the class UpdateUserPermissionsHandlerTest method testAuthorizedCreate.
/**
* Verifies that a user with the manageUsers permission can add another user to the UserDatabase
*
* @throws CommandException
*/
@Test
@OnDataSet("/dbunit/schema1.db.xml")
public void testAuthorizedCreate() throws CommandException {
setUser(2);
UserPermissionDTO user = new UserPermissionDTO();
user.setEmail("ralph@lauren.com");
user.setName("Ralph");
user.setPartner(new PartnerDTO(1, "NRC"));
user.setAllowView(true);
user.setAllowEdit(true);
UpdateUserPermissions cmd = new UpdateUserPermissions(1, user);
execute(cmd);
UserResult result = execute(new GetUsers(1));
Assert.assertEquals(1, result.getTotalLength());
Assert.assertEquals("ralph@lauren.com", result.getData().get(0).getEmail());
Assert.assertTrue("edit permissions", result.getData().get(0).getAllowEdit());
}
Aggregations