Skip to content

Commit

Permalink
SHIBUI-975: wip
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Nov 12, 2018
1 parent f4a6d3c commit 1e6b97d
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package edu.internet2.tier.shibboleth.admin.ui.security.model;

import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import java.util.Set;

/**
* Models a basic administrative role concept in the system.
*
* @author Dmitriy Kopylenko
*/
@Entity
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode(callSuper = true, exclude = "admins")
@ToString(exclude = "admins")
public class AdminRole extends AbstractAuditable {

@Column(unique = true)
private String name;

@ManyToMany(cascade = CascadeType.ALL, mappedBy = "roles", fetch = FetchType.EAGER)
private Set<AdminUser> admins;


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package edu.internet2.tier.shibboleth.admin.ui.security.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import edu.internet2.tier.shibboleth.admin.ui.domain.AbstractAuditable;
import lombok.*;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import java.util.Set;

/**
* Models a basic administrative user in the system.
*
* @author Dmitriy Kopylenko
*/
@Entity
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode(callSuper = true, exclude = "roles")
@ToString(exclude = "roles")
public class AdminUser extends AbstractAuditable {

@Column(nullable = false, unique = true)
private String username;

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Column(nullable = false)
private String password;

private String firstName;

private String lastName;

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "adminuser_role", joinColumns = @JoinColumn(name = "admin_user_id"), inverseJoinColumns = @JoinColumn(name = "admin_role_id"))
private Set<AdminRole> roles;
}

0 comments on commit 1e6b97d

Please sign in to comment.