Search in sources :

Example 1 with UserRole

use of webpiecesxxxxxpackage.db.UserRole in project webpieces by deanhiller.

the class CrudUserController method postSaveUser.

public Redirect postSaveUser(@UseQuery("findByIdWithRoleJoin") UserDbo entity, List<RoleEnum> selectedRoles, @NotBlank @Size(min = 4, max = 20) String password) {
    // the form with what the user typed in along with errors
    if (Current.validation().hasErrors()) {
        log.info("page has errors");
        FlashAndRedirect redirect = new FlashAndRedirect(Current.getContext(), "Errors in form below");
        // make sure secure fields are not put in flash cookie!!!
        redirect.setSecureFields("entity.password");
        redirect.setIdFieldAndValue("id", entity.getId());
        return Actions.redirectFlashAll(GET_ADD_USER_FORM, GET_EDIT_USER_FORM, redirect);
    }
    Current.flash().setMessage("User successfully saved");
    Current.flash().keep(true);
    Current.validation().keep(false);
    List<UserRole> roles = entity.getRoles();
    for (UserRole r : roles) {
        Em.get().remove(r);
    }
    roles.clear();
    for (RoleEnum r : selectedRoles) {
        UserRole role = new UserRole(entity, r);
        Em.get().persist(role);
    }
    // WTF...this now can update an entity that did not exist before...fun times.
    // Docs say "@throws EntityExistsException if the entity already exists." but that's NOT true.
    // we use this for INSERT and UPDATE and it works great!!
    Em.get().persist(entity);
    Em.get().flush();
    return Actions.redirect(CrudUserRouteId.LIST_USERS);
}
Also used : FlashAndRedirect(org.webpieces.router.api.controller.actions.FlashAndRedirect) UserRole(webpiecesxxxxxpackage.db.UserRole) RoleEnum(webpiecesxxxxxpackage.db.RoleEnum)

Example 2 with UserRole

use of webpiecesxxxxxpackage.db.UserRole in project webpieces by deanhiller.

the class CrudUserController method postDeleteUser.

public Redirect postDeleteUser(int id) {
    UserDbo ref = Em.get().find(UserDbo.class, id);
    List<UserRole> roles = ref.getRoles();
    for (UserRole r : roles) {
        Em.get().remove(r);
    }
    Em.get().remove(ref);
    Em.get().flush();
    Current.flash().setMessage("User deleted");
    Current.flash().keep(true);
    Current.validation().keep(false);
    return Actions.redirect(CrudUserRouteId.LIST_USERS);
}
Also used : UserDbo(webpiecesxxxxxpackage.db.UserDbo) UserRole(webpiecesxxxxxpackage.db.UserRole)

Example 3 with UserRole

use of webpiecesxxxxxpackage.db.UserRole in project webpieces by deanhiller.

the class CrudUserController method userAddEdit.

public Action userAddEdit(Integer id) {
    if (id == null) {
        return Actions.renderThis("entity", new UserDbo(), "levels", EducationEnum.values(), "roles", RoleEnum.values(), "selectedRoles", null, "password", null);
    }
    UserDbo user = UserDbo.findWithJoin(Em.get(), id);
    List<UserRole> roles = user.getRoles();
    List<RoleEnum> selectedRoles = roles.stream().map(r -> r.getRole()).collect(Collectors.toList());
    return Actions.renderThis("entity", user, "levels", EducationEnum.values(), "roles", RoleEnum.values(), "selectedRoles", selectedRoles, "password", null);
}
Also used : Action(org.webpieces.router.api.controller.actions.Action) UserDbo(webpiecesxxxxxpackage.db.UserDbo) Size(javax.validation.constraints.Size) NotBlank(javax.validation.constraints.NotBlank) Logger(org.slf4j.Logger) UseQuery(org.webpieces.plugin.hibernate.UseQuery) Render(org.webpieces.router.api.controller.actions.Render) FlashAndRedirect(org.webpieces.router.api.controller.actions.FlashAndRedirect) GET_EDIT_USER_FORM(webpiecesxxxxxpackage.web.secure.crud.CrudUserRouteId.GET_EDIT_USER_FORM) LoggerFactory(org.slf4j.LoggerFactory) EntityManager(javax.persistence.EntityManager) Singleton(javax.inject.Singleton) UserRole(webpiecesxxxxxpackage.db.UserRole) Collectors(java.util.stream.Collectors) EducationEnum(webpiecesxxxxxpackage.db.EducationEnum) List(java.util.List) Query(javax.persistence.Query) GET_ADD_USER_FORM(webpiecesxxxxxpackage.web.secure.crud.CrudUserRouteId.GET_ADD_USER_FORM) Em(org.webpieces.plugin.hibernate.Em) Redirect(org.webpieces.router.api.controller.actions.Redirect) Current(org.webpieces.ctx.api.Current) Actions(org.webpieces.router.api.controller.actions.Actions) RoleEnum(webpiecesxxxxxpackage.db.RoleEnum) UserDbo(webpiecesxxxxxpackage.db.UserDbo) UserRole(webpiecesxxxxxpackage.db.UserRole) RoleEnum(webpiecesxxxxxpackage.db.RoleEnum)

Example 4 with UserRole

use of webpiecesxxxxxpackage.db.UserRole in project webpieces by deanhiller.

the class AjaxCrudUserController method postDeleteUser.

public Redirect postDeleteUser(int id) {
    UserDbo ref = Em.get().find(UserDbo.class, id);
    List<UserRole> roles = ref.getRoles();
    for (UserRole r : roles) {
        Em.get().remove(r);
    }
    Em.get().remove(ref);
    Em.get().flush();
    Current.flash().setMessage("User deleted");
    Current.flash().keep(true);
    Current.validation().keep(false);
    return Actions.redirect(AjaxCrudUserRouteId.AJAX_LIST_USERS);
}
Also used : UserDbo(webpiecesxxxxxpackage.db.UserDbo) UserRole(webpiecesxxxxxpackage.db.UserRole)

Example 5 with UserRole

use of webpiecesxxxxxpackage.db.UserRole in project webpieces by deanhiller.

the class PopulateDatabase method createSomeData.

private void createSomeData() {
    EntityManager mgr = factory.createEntityManager();
    List<UserDbo> users = UserDbo.findAll(mgr);
    if (users.size() > 0)
        // This database has users, exit immediately to not screw up existing data
        return;
    EntityTransaction tx = mgr.getTransaction();
    tx.begin();
    UserDbo user1 = new UserDbo();
    user1.setEmail("dean@somewhere.com");
    user1.setName("SomeName");
    user1.setFirstName("Dean");
    user1.setLastName("Hill");
    UserDbo user2 = new UserDbo();
    user2.setEmail("bob@somewhere.com");
    user2.setName("Bob'sName");
    user2.setFirstName("Bob");
    user2.setLastName("LastBob");
    user2.setLevelOfEducation(EducationEnum.MIDDLE_SCHOOL);
    UserRole role1 = new UserRole(user2, RoleEnum.DELINQUINT);
    UserRole role2 = new UserRole(user2, RoleEnum.BADASS);
    mgr.persist(user1);
    mgr.persist(user2);
    mgr.persist(role1);
    mgr.persist(role2);
    mgr.flush();
    tx.commit();
}
Also used : EntityTransaction(javax.persistence.EntityTransaction) EntityManager(javax.persistence.EntityManager) UserDbo(webpiecesxxxxxpackage.db.UserDbo) UserRole(webpiecesxxxxxpackage.db.UserRole)

Aggregations

UserRole (webpiecesxxxxxpackage.db.UserRole)5 UserDbo (webpiecesxxxxxpackage.db.UserDbo)4 EntityManager (javax.persistence.EntityManager)2 FlashAndRedirect (org.webpieces.router.api.controller.actions.FlashAndRedirect)2 RoleEnum (webpiecesxxxxxpackage.db.RoleEnum)2 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 Singleton (javax.inject.Singleton)1 EntityTransaction (javax.persistence.EntityTransaction)1 Query (javax.persistence.Query)1 NotBlank (javax.validation.constraints.NotBlank)1 Size (javax.validation.constraints.Size)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1 Current (org.webpieces.ctx.api.Current)1 Em (org.webpieces.plugin.hibernate.Em)1 UseQuery (org.webpieces.plugin.hibernate.UseQuery)1 Action (org.webpieces.router.api.controller.actions.Action)1 Actions (org.webpieces.router.api.controller.actions.Actions)1 Redirect (org.webpieces.router.api.controller.actions.Redirect)1