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

cn.infop.dao.PermissionDao Maven / Gradle / Ivy

package cn.infop.dao;

import java.util.List;

import cn.infop.entity.Permission;
import cn.infop.tools.BusinessDao;
import cn.infop.tools.JdbcUtils;

public class PermissionDao extends BusinessDao {

	private final String table = "(SELECT * FROM permissions) t";

	public PermissionDao() {
		super(Permission.class);
		super.multiTable = table;
		super.singleTable = "permissions";
	}

	@SuppressWarnings("unchecked")
	public List findAll() {
		String sql = "select * from " + table +" order by group_name,name";
		return JdbcUtils.getBeans(sql,Permission.class);
	}

	public void save(Permission permission) {
		String sql = "INSERT INTO permissions(name,permission,uri,group_name)VALUES(?,?,?,?)";
		JdbcUtils.insertWithoutReturnId(sql, new Object[] { permission.getName(), permission.getPermission(), permission.getUri(),
				permission.getGroup_name() });
	}

	public void update(Permission permission) {
		String sql = "update permissions set permission = ?, uri = ?,group_name =? where name = ? ";
		JdbcUtils.insertWithoutReturnId(sql, new Object[] { permission.getPermission(), permission.getUri(),
				permission.getGroup_name(), permission.getName() });
	}

	public void deletePermission(String name) {
		JdbcUtils.execute("delete from roles_permissions where permission = ?", new Object[] { name });
		JdbcUtils.execute("delete from permissions where name = ?", new Object[] { name });
	}
	
	public Permission findByName(String name) {
		String sql = "select * from permissions where name = ? ";
		return JdbcUtils.getBean(sql,Permission.class, new Object[] { name });
	}

	private Boolean hasPermission(String role_name, String permission) {
		String sql = "SELECT count(*) as sum FROM roles_permissions where permission = ? and role_name = ? ";
		int size = JdbcUtils.count(sql, new Object[] { role_name, permission });
		if (size>0) {
			return true;
		} else {
			return false;
		}

	}

	public List findByRole(String role_name) {
		List list = findAll();
		for (Permission Permission : list) {
			Permission.setChecked(hasPermission(Permission.getName(), role_name));
		}
		return list;
	}

	public void addRolePermission(String role_name, String permission) {
		String sql = "INSERT INTO roles_permissions(role_name,permission) VALUES(?,?) ";
		JdbcUtils.execute(sql, new Object[] { role_name, permission });
	}

	public void deleteRolePermission(String role_name, String permission) {
		String sql = "DELETE FROM roles_permissions where role_name = ? and permission = ?";
		JdbcUtils.execute(sql, new Object[] { role_name, permission });
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy