Search in sources :

Example 1 with UserDatabase

use of org.activityinfo.server.database.hibernate.entity.UserDatabase in project activityinfo by bedatadriven.

the class AddProjectHandler method execute.

@Override
public CommandResult execute(AddProject cmd, User user) throws CommandException {
    UserDatabase db = em.find(UserDatabase.class, cmd.getDatabaseId());
    ProjectDTO from = cmd.getProjectDTO();
    Project project = new Project();
    project.setName(from.getName());
    project.setDescription(from.getDescription());
    project.setUserDatabase(db);
    db.setLastSchemaUpdate(new Date());
    em.persist(project);
    em.persist(db);
    db.getProjects().add(project);
    return new CreateResult(project.getId());
}
Also used : ProjectDTO(org.activityinfo.shared.dto.ProjectDTO) Project(org.activityinfo.server.database.hibernate.entity.Project) AddProject(org.activityinfo.shared.command.AddProject) CreateResult(org.activityinfo.shared.command.result.CreateResult) UserDatabase(org.activityinfo.server.database.hibernate.entity.UserDatabase) Date(java.util.Date)

Example 2 with UserDatabase

use of org.activityinfo.server.database.hibernate.entity.UserDatabase in project activityinfo by bedatadriven.

the class AddPartnerHandler method execute.

@Override
@SuppressWarnings("unchecked")
public CommandResult execute(AddPartner cmd, User user) throws CommandException {
    UserDatabase db = em.find(UserDatabase.class, cmd.getDatabaseId());
    if (db.getOwner().getId() != user.getId()) {
        UserPermission perm = db.getPermissionByUser(user);
        if (perm == null || !perm.isAllowManageAllUsers()) {
            throw new IllegalAccessCommandException("The user does not have the manageAllUsers permission.");
        }
    }
    // first check to see if an organization by this name is already
    // a partner
    Set<Partner> dbPartners = db.getPartners();
    for (Partner partner : dbPartners) {
        if (partner.getName().equals(cmd.getPartner().getName())) {
            return new DuplicateCreateResult();
        }
    }
    // now try to match this partner by name
    List<Partner> allPartners = em.createQuery("select p from Partner p where p.name = ?1").setParameter(1, cmd.getPartner().getName()).getResultList();
    if (allPartners.size() != 0) {
        db.getPartners().add(allPartners.get(0));
        return new CreateResult(allPartners.get(0).getId());
    }
    // nope, have to create a new record
    Partner newPartner = new Partner();
    newPartner.setName(cmd.getPartner().getName());
    newPartner.setFullName(cmd.getPartner().getFullName());
    em.persist(newPartner);
    db.setLastSchemaUpdate(new Date());
    em.persist(db);
    db.getPartners().add(newPartner);
    return new CreateResult(newPartner.getId());
}
Also used : DuplicateCreateResult(org.activityinfo.shared.command.result.DuplicateCreateResult) CreateResult(org.activityinfo.shared.command.result.CreateResult) DuplicateCreateResult(org.activityinfo.shared.command.result.DuplicateCreateResult) IllegalAccessCommandException(org.activityinfo.shared.exception.IllegalAccessCommandException) UserDatabase(org.activityinfo.server.database.hibernate.entity.UserDatabase) Partner(org.activityinfo.server.database.hibernate.entity.Partner) AddPartner(org.activityinfo.shared.command.AddPartner) Date(java.util.Date) UserPermission(org.activityinfo.server.database.hibernate.entity.UserPermission)

Example 3 with UserDatabase

use of org.activityinfo.server.database.hibernate.entity.UserDatabase in project activityinfo by bedatadriven.

the class AddTargetHandler method execute.

@Override
public CommandResult execute(AddTarget cmd, User user) throws CommandException {
    TargetDTO form = cmd.getTargetDTO();
    UserDatabase db = em.find(UserDatabase.class, cmd.getDatabaseId());
    Partner partner = null;
    if (form.get("partnerId") != null) {
        partner = em.find(Partner.class, form.get("partnerId"));
    }
    Project project = null;
    if (form.get("projectId") != null) {
        project = em.find(Project.class, form.get("projectId"));
    }
    AdminEntity adminEntity = null;
    // if(form.getAdminEntity() != null){
    // adminEntity = em.find(AdminEntity.class,
    // form.getAdminEntity().getId());
    // }
    Target target = new Target();
    target.setName(form.getName());
    target.setUserDatabase(db);
    target.setAdminEntity(adminEntity);
    target.setPartner(partner);
    target.setProject(project);
    target.setDate1(form.getDate1());
    target.setDate2(form.getDate2());
    db.setLastSchemaUpdate(new Date());
    em.persist(target);
    em.persist(db);
    db.getTargets().add(target);
    // }
    if (project != null) {
        project.getTargets().add(target);
    }
    if (partner != null) {
        partner.getTargets().add(target);
    }
    return new CreateResult(target.getId());
}
Also used : Project(org.activityinfo.server.database.hibernate.entity.Project) AdminEntity(org.activityinfo.server.database.hibernate.entity.AdminEntity) Target(org.activityinfo.server.database.hibernate.entity.Target) AddTarget(org.activityinfo.shared.command.AddTarget) CreateResult(org.activityinfo.shared.command.result.CreateResult) UserDatabase(org.activityinfo.server.database.hibernate.entity.UserDatabase) TargetDTO(org.activityinfo.shared.dto.TargetDTO) Partner(org.activityinfo.server.database.hibernate.entity.Partner) Date(java.util.Date)

Example 4 with UserDatabase

use of org.activityinfo.server.database.hibernate.entity.UserDatabase in project activityinfo by bedatadriven.

the class SchemaUpdateBuilder method createAndSyncAttributeGroupInActivity.

private void createAndSyncAttributeGroupInActivity(JpaUpdateBuilder builder) throws JSONException {
    builder.executeStatement("create table if not exists AttributeGroupInActivity (ActivityId integer, AttributeGroupId integer)");
    builder.executeStatement("delete from AttributeGroupInActivity");
    if (anyAttributes()) {
        builder.beginPreparedStatement("insert into AttributeGroupInActivity (ActivityId, AttributeGroupId) values (?,?)");
        for (UserDatabase db : databases) {
            for (Activity activity : db.getActivities()) {
                for (AttributeGroup group : activity.getAttributeGroups()) {
                    builder.addExecution(activity.getId(), group.getId());
                }
            }
        }
        builder.finishPreparedStatement();
    }
}
Also used : UserDatabase(org.activityinfo.server.database.hibernate.entity.UserDatabase) AttributeGroup(org.activityinfo.server.database.hibernate.entity.AttributeGroup) Activity(org.activityinfo.server.database.hibernate.entity.Activity)

Example 5 with UserDatabase

use of org.activityinfo.server.database.hibernate.entity.UserDatabase in project activityinfo by bedatadriven.

the class DesignAuthorizationHandler method isAuthorized.

@Override
public boolean isAuthorized(AuthenticatedUser requestingUser, SchemaElement entity) {
    Preconditions.checkNotNull(requestingUser, "requestingUser");
    UserDatabase database = entity.findOwningDatabase();
    if (database.getOwner().getId() == requestingUser.getId()) {
        return true;
    }
    for (UserPermission permission : database.getUserPermissions()) {
        if (permission.getUser().getId() == requestingUser.getId() && permission.isAllowDesign()) {
            return true;
        }
    }
    return false;
}
Also used : UserDatabase(org.activityinfo.server.database.hibernate.entity.UserDatabase) UserPermission(org.activityinfo.server.database.hibernate.entity.UserPermission)

Aggregations

UserDatabase (org.activityinfo.server.database.hibernate.entity.UserDatabase)14 Partner (org.activityinfo.server.database.hibernate.entity.Partner)7 Date (java.util.Date)6 UserPermission (org.activityinfo.server.database.hibernate.entity.UserPermission)5 Activity (org.activityinfo.server.database.hibernate.entity.Activity)4 Project (org.activityinfo.server.database.hibernate.entity.Project)4 CreateResult (org.activityinfo.shared.command.result.CreateResult)4 User (org.activityinfo.server.database.hibernate.entity.User)3 AttributeGroup (org.activityinfo.server.database.hibernate.entity.AttributeGroup)2 IllegalAccessCommandException (org.activityinfo.shared.exception.IllegalAccessCommandException)2 UpdateUserPermissionsHandler (org.activityinfo.server.command.handler.UpdateUserPermissionsHandler)1 AdminEntity (org.activityinfo.server.database.hibernate.entity.AdminEntity)1 Attribute (org.activityinfo.server.database.hibernate.entity.Attribute)1 Indicator (org.activityinfo.server.database.hibernate.entity.Indicator)1 IndicatorLinkEntity (org.activityinfo.server.database.hibernate.entity.IndicatorLinkEntity)1 LocationType (org.activityinfo.server.database.hibernate.entity.LocationType)1 LockedPeriod (org.activityinfo.server.database.hibernate.entity.LockedPeriod)1 Target (org.activityinfo.server.database.hibernate.entity.Target)1 MailSenderStub (org.activityinfo.server.mail.MailSenderStub)1 TemplateModule (org.activityinfo.server.util.TemplateModule)1