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

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

package cn.infop.dao;

import java.util.List;

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

public class RoleDao extends BusinessDao {

	private final String table = "(SELECT * FROM roles WHERE name<>'ROOT') t";

	public RoleDao() {
		super(Role.class);
		super.multiTable = table;
		super.singleTable = "roles";
	}

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

	public Role findByName(String name) {
		String sql = "select * from roles where name = ?";
		return JdbcUtils.getBean(sql, Role.class, new Object[] { name });
	}

	public void save(Role role) {
		String sql = "INSERT INTO roles(name , describes)VALUES(? ,?)";
		JdbcUtils.insertWithoutReturnId(sql, new Object[] { role.getName(), role.getDescribes() });
	}

	public void update(Role role) {
		String sql = "update roles set describes = ? where name = ? ";
		JdbcUtils.execute(sql, new Object[] { role.getDescribes(), role.getName() });
	}

	public void deleteRoel(String name) {
		JdbcUtils.execute("delete from roles_permissions where role_name = ?", new Object[] { name });
		JdbcUtils.execute("delete from roles where name = ?", new Object[] { name });
	}

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

	public List findByUsername(String username) {
		List list = findAll();
		for (Role role : list) {
			role.setChecked(hasRole(role.getName(), username));
		}
		return list;
	}

	public void addUserRole(String username, String rolename) {
		String sql = "INSERT INTO user_roles(role_name,username) VALUES(?,?) ";
		JdbcUtils.execute(sql, new Object[] { rolename, username });
	}

	public void deleteUserRole(String username, String rolename) {
		String sql = "DELETE FROM user_roles where role_name = ? and username = ?";
		JdbcUtils.execute(sql, new Object[] { rolename, username });
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy