use of org.activityinfo.server.database.hibernate.entity.User in project activityinfo by bedatadriven.
the class UpdateUserPermissionsHandler method execute.
@Override
public CommandResult execute(UpdateUserPermissions cmd, User executingUser) {
LOGGER.info("UpdateUserPermissions: " + cmd);
Database 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();
UserPermission executingUserPermission = queryUserPermission(executingUser, database);
LOGGER.info("executingUserPermission: isOwner: " + isOwner + ", executingUserPermissions: " + cmd);
if (!isOwner) {
verifyAuthority(cmd, executingUserPermission);
}
/* Database owner cannot be added */
if (database.getOwner().getEmail().equalsIgnoreCase(cmd.getModel().getEmail())) {
throw new UserExistsException();
}
User user = null;
if (userDAO.doesUserExist(dto.getEmail())) {
user = userDAO.findUserByEmail(dto.getEmail());
}
if (user == null) {
user = createNewUser(executingUser, dto);
}
/*
* Does the permission record exist ?
*/
UserPermission perm = queryUserPermission(user, database);
if (perm == null) {
perm = new UserPermission(database, user);
doUpdate(perm, dto, isOwner, executingUserPermission);
permDAO.persist(perm);
} else {
// If the user is intending to add a new user, verify that this user doesn't already exist
if (cmd.isNewUser() && perm.isAllowView()) {
throw new UserExistsException();
}
doUpdate(perm, dto, isOwner, executingUserPermission);
}
return null;
}
use of org.activityinfo.server.database.hibernate.entity.User in project activityinfo by bedatadriven.
the class BasicAuthentication method tryAuthenticate.
public Authentication tryAuthenticate(String authorizationHeader) {
User user;
try {
user = doAuthentication(authorizationHeader);
} catch (IOException e) {
return null;
}
Authentication auth = new Authentication(user);
auth.setId("");
return auth;
}
use of org.activityinfo.server.database.hibernate.entity.User in project activityinfo by bedatadriven.
the class HumanitarianId method createNewAccount.
private Response createNewAccount(URI baseUri, HumanitarianIdAccount account) {
entityManager.get().getTransaction().begin();
User user = new User();
user.setEmail(account.getEmail());
user.setName(account.getName());
user.setDateCreated(new Date());
user.setLocale("en");
entityManager.get().persist(user);
entityManager.get().getTransaction().commit();
return redirectToApp(baseUri, user);
}
use of org.activityinfo.server.database.hibernate.entity.User in project activityinfo by bedatadriven.
the class DispatcherSyncImpl method execute.
@Override
public <C extends Command<R>, R extends CommandResult> R execute(C command) throws CommandException {
if (RemoteExecutionContext.inProgress()) {
return RemoteExecutionContext.current().execute(command);
} else {
User user = new User();
user.setId(userProvider.get().getUserId());
user.setEmail(userProvider.get().getEmail());
user.setLocale(userProvider.get().getUserLocale());
RemoteExecutionContext context = new RemoteExecutionContext(injector);
return context.startExecute(command);
}
}
use of org.activityinfo.server.database.hibernate.entity.User in project activityinfo by bedatadriven.
the class UserDAOImpl method createNewUser.
/**
* Initializes this User as a new User with a secure changePasswordKey
*/
public static User createNewUser(String email, String name, String organization, String jobtitle, String locale) {
User user = new User();
user.setEmail(email);
user.setName(name);
user.setOrganization(organization);
user.setJobtitle(jobtitle);
user.setEmailNotification(false);
user.setLocale(locale);
user.setChangePasswordKey(SecureTokenGenerator.generate());
return user;
}
Aggregations