/**
* Copyright (c) 2015 Mustafa DUMLUPINAR, mdumlupinar@gmail.com
*
* This file is part of seyhan project.
*
* seyhan is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package models;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Transient;
import play.data.validation.Constraints;
import play.db.ebean.Model;
import play.i18n.Messages;
import enums.Right;
import enums.RightLevel;
@Entity
/**
* @author mdpinar
*/
public class AdminUserRight extends Model {
private static final long serialVersionUID = 1L;
@Id
public Integer id;
public Boolean isCRUD;
@Transient
public Boolean isHeader;
@Transient
public Boolean isReport;
@Transient
public String title;
@Transient
public String key;
@Transient
public Right right;
@Constraints.Required
@Constraints.MinLength(3)
@Constraints.MaxLength(50)
public String name;
public RightLevel rightLevel = RightLevel.Disable;
@ManyToOne
public AdminUserRole userRole;
public AdminUserRight(String right, String level) {
this(Right.valueOf(right));
this.rightLevel = RightLevel.valueOf(level);
}
public AdminUserRight(Right right) {
this.right = right;
this.name = right.name();
this.key = right.key;
this.isCRUD = right.isCRUD;
this.isHeader = right.isHeader;
this.isReport = right.isReport;
this.rightLevel = RightLevel.Disable;
this.title = Messages.get(right.key);
}
@Override
public boolean equals(Object other){
if (other == null) return false;
if (other == this) return true;
if (!(other instanceof AdminUserRight)) return false;
AdminUserRight otherObj = (AdminUserRight) other;
return (otherObj.name != null && otherObj.name.equals(this.name));
}
}