All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jpaoletti.jpm.hibernate.security.SECUserGroup Maven / Gradle / Ivy

The newest version!
package jpaoletti.jpm.hibernate.security;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
import javax.persistence.*;
import org.hibernate.annotations.Type;

@Entity
@Table(name = "sec_groups")
public class SECUserGroup implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Column(unique = true)
    private String name;
    private String description;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date creation;
    @Type(type = "yes_no")
    private boolean active;
    @ManyToMany
    @JoinTable(name = "sec_group_perms", joinColumns =
    @JoinColumn(name = "sec_group"), inverseJoinColumns =
    @JoinColumn(name = "sec_perm"))
    private Set permissions;

    @Override
    public String toString() {
        return name;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final SECUserGroup other = (SECUserGroup) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 97 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }

    public SECUserGroup() {
        super();
        permissions = new LinkedHashSet();
    }

    public SECPermission getPermission(String name) {
        for (SECPermission p : getPermissions()) {
            if (name != null && p != null && name.compareTo(p.getName()) == 0) {
                return p;
            }
        }
        return null;
    }

    public boolean hasPermission(String permName) {
        return getPermission(permName) != null;
    }

    public void grant(SECPermission perm) {
        getPermissions().add(perm);
    }

    public void revoke(String perm) {
        getPermissions().remove(getPermission(perm));
    }

    public void revokeAll() {
        getPermissions().clear();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Date getCreation() {
        return creation;
    }

    public void setCreation(Date creation) {
        this.creation = creation;
    }

    public Set getPermissions() {
        return permissions;
    }

    public void setPermissions(Set permissions) {
        this.permissions = permissions;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public boolean isActive() {
        return active;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy