亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? securitycommon.java

?? 一個論壇程序的簡單實現
?? JAVA
字號:
/*
 * Copyright (c) 2003, Rafael Steil
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, 
 * with or without modification, are permitted provided 
 * that the following conditions are met:
 * 
 * 1) Redistributions of source code must retain the above 
 * copyright notice, this list of conditions and the 
 * following  disclaimer.
 * 2)  Redistributions in binary form must reproduce the 
 * above copyright notice, this list of conditions and 
 * the following disclaimer in the documentation and/or 
 * other materials provided with the distribution.
 * 3) Neither the name of "Rafael Steil" nor 
 * the names of its contributors may be used to endorse 
 * or promote products derived from this software without 
 * specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
 * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
 * IN CONTRACT, STRICT LIABILITY, OR TORT 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
 * 
 * This file creation date: 19/03/2004 - 18:45:54
 * The JForum Project
 * http://www.jforum.net
 */
package net.jforum.drivers.generic.security;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;

import net.jforum.JForum;
import net.jforum.security.PermissionControl;
import net.jforum.security.Role;
import net.jforum.security.RoleCollection;
import net.jforum.security.RoleValue;
import net.jforum.security.RoleValueCollection;
import net.jforum.util.preferences.SystemGlobals;

/**
 * @author Rafael Steil
 * @version $Id: SecurityCommon.java,v 1.5 2004/10/24 14:41:12 rafaelsteil Exp $
 */
public class SecurityCommon 
{
	/**
	 * Execute the <i>add role</i> thing.
	 * As the SQL statement to insert user and group roles are diferent, they cannot be
	 * manipuled with a 'generic' statement, and is for this reason that <code>addRole</code>
	 * method is marked abstract. <br>
	 * The only job the <code>addRole</code> method should do is to get the correct SQL
	 * statement for each case - user or group - and the repass it to this method, who
	 * then do the job for us.
	 * 
	 * @param sql The SQL statement to be executed.
	 * @param id The ID do insert. May be user's or group's id, depending of the situation ( the caller ) 
	 * @param roleName The role name to insert
	 * @param roleValues A <code>RoleValueCollection</code> collection containing the role values to 
	 * insert. If none is wanted, just pass null as argument.
	 * @param supportAutoGeneratedKeys Set to <code>true</code> if <i>Statement.RETURN_GENERATED_KEYS</i> is
	 * supported by the Driver, or <code>false</code> if not. 
	 * @throws Exception
	 */
	public static void executeAddRole(String sql, int id, Role role, RoleValueCollection roleValues, 
			boolean supportAutoGeneratedKeys, String autoKeysQuery) throws Exception
	{
		PreparedStatement p;
	
		if (supportAutoGeneratedKeys) {
			p = JForum.getConnection().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
		}
		else {
			p = JForum.getConnection().prepareStatement(sql);
		}
		
		p.setInt(1, id);
		p.setString(2, role.getName());
		p.setInt(3, role.getType());
		
		p.executeUpdate();
		
		if (roleValues != null) {
			int roleId = -1;
			
			if (supportAutoGeneratedKeys) {
				ResultSet rs = p.getGeneratedKeys();
				rs.next();
				roleId = rs.getInt(1);
				rs.close();
			}
			else {
				p = JForum.getConnection().prepareStatement(autoKeysQuery);
				ResultSet rs = p.executeQuery();
				if (rs.next()) {
					roleId = rs.getInt(1);
				}
				rs.close();
			}
			
			if (roleId == -1) {
				p.close();
				throw new SQLException("Could not obtain the latest role id");
			}
			
			p = JForum.getConnection().prepareStatement(SystemGlobals.getSql("PermissionControl.addRoleValues"));
			
			for (Iterator iter = roleValues.iterator(); iter.hasNext(); ) {
				RoleValue rv = (RoleValue)iter.next();
				
				p.setInt(1, roleId);
				p.setString(2, rv.getValue());
				p.setInt(3, rv.getType());
				
				p.executeUpdate();
			}
		}
		
		p.close();	
	}
	
	/**
	 * See {@link PermissionControl#executeAddRole(String, int, String, RoleValueCollection)} for explanation
	 * about this method. The working way is the same. 
	 * 
	 * @param sql The SQL statement to execute
	 * @param id The ID do insert. May be user's or group's id, depending of the situation ( the caller )
	 * @return A <code>RoleCollection</code> collection with the roles processed.
	 * @throws Exception
	 */
	public static RoleCollection processLoadRoles(String sql, int id) throws Exception
	{
		RoleCollection rc = new RoleCollection();
		
		PreparedStatement p = JForum.getConnection().prepareStatement(sql);
		p.setInt(1, id);
		
		Role r = null;
		int lastId = -1;
		
		ResultSet rs = p.executeQuery();
		while (rs.next()) {
			if (rs.getInt("role_id") != lastId) {
				if (r != null) {
					rc.add(r);
				}
				r = new Role();
				
				r.setGroupId(id);
				r.setName(rs.getString("name"));
				r.setType(rs.getInt("role_type"));
				r.setId(rs.getInt("role_id"));
				
				lastId = r.getId();
			}
			
			if (rs.getString("role_value") != null) {
				RoleValue rv = new RoleValue();
				rv.setRoleId(r.getId());
				rv.setType(rs.getInt("rv_type"));
				rv.setValue(rs.getString("role_value"));
				
				r.getValues().add(rv);
			}
		}
		
		if (r != null) {
			rc.add(r);
		}
		
		rs.close();
		p.close();
		
		return rc;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品欧美精品系列| 在线观看视频一区二区欧美日韩| 激情欧美一区二区三区在线观看| 成人中文字幕电影| 色天使色偷偷av一区二区| 6080国产精品一区二区| 2020日本不卡一区二区视频| 国产精品高清亚洲| 日本系列欧美系列| 久久精品国产亚洲高清剧情介绍| 精品影视av免费| 精品亚洲欧美一区| 成人av在线资源网| 91精品国产高清一区二区三区蜜臀| ww亚洲ww在线观看国产| 日韩影院在线观看| 欧美性生活久久| 捆绑紧缚一区二区三区视频| 日本在线观看不卡视频| 日本乱码高清不卡字幕| 国产精品蜜臀av| 国产乱子伦视频一区二区三区 | 久久欧美中文字幕| 日本不卡视频在线观看| 欧美男男青年gay1069videost| 亚洲天堂av一区| 成人一区二区三区在线观看| 久久综合资源网| 国内精品伊人久久久久av一坑| 欧美日韩专区在线| 亚洲最新视频在线播放| 91麻豆免费看片| 一区二区三区.www| 欧美日韩一级视频| 亚洲成人黄色小说| 91精品国产综合久久久久 | 国产欧美精品一区aⅴ影院| 久久99在线观看| 欧美zozozo| 国产一区二区福利视频| 欧美精品一区二区三区蜜臀| 久久激情五月婷婷| 久久综合久久99| 国产精品综合av一区二区国产馆| 欧美成人猛片aaaaaaa| 久久国产成人午夜av影院| 日韩免费看的电影| 国产精品小仙女| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品日日摸夜夜摸av| 成人国产精品免费| 一区二区在线免费观看| 色婷婷一区二区三区四区| 一区二区三区蜜桃| 欧美美女视频在线观看| 欧美aaaaaa午夜精品| 久久综合九色综合97婷婷| 国产福利一区二区| 亚洲视频你懂的| 51久久夜色精品国产麻豆| 激情五月激情综合网| 日韩码欧中文字| 欧美日韩精品综合在线| 精品亚洲免费视频| 亚洲女子a中天字幕| 欧美电影在哪看比较好| 国产激情视频一区二区在线观看| 中文字幕在线不卡| 欧美一二三四区在线| 成人一区二区三区视频在线观看 | 丝袜亚洲另类欧美综合| 久久一日本道色综合| 91网站最新地址| 麻豆成人久久精品二区三区红| 中文字幕欧美日韩一区| 欧美日韩免费在线视频| 91精品免费观看| 国产在线精品一区二区夜色| 亚洲激情校园春色| 久久你懂得1024| 欧美性猛片aaaaaaa做受| 国产精一品亚洲二区在线视频| 亚洲美女屁股眼交| 国产性天天综合网| 欧美顶级少妇做爰| 91农村精品一区二区在线| 激情偷乱视频一区二区三区| 亚洲无线码一区二区三区| 国产精品午夜春色av| 日韩情涩欧美日韩视频| 在线视频欧美区| 国产69精品久久99不卡| 日本va欧美va欧美va精品| 亚洲免费观看高清在线观看| 欧美精品一区二区三区在线| 欧美私人免费视频| av亚洲精华国产精华| 精品一区在线看| 免费在线观看视频一区| 亚洲自拍偷拍麻豆| 日韩美女视频19| 中文字幕欧美三区| 久久蜜臀精品av| 亚洲精品一区二区三区99| 欧美日本在线观看| 欧美日韩在线亚洲一区蜜芽| 91原创在线视频| 成人开心网精品视频| 国产伦精品一区二区三区免费迷| 麻豆精品一二三| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美成人精精品一区二区频| 欧美人体做爰大胆视频| 欧美日韩一区高清| 欧美日韩国产综合久久| 欧美视频精品在线| 欧美日韩激情一区二区| 欧美人妖巨大在线| 日韩一区二区三区电影在线观看| 欧美日韩国产美女| 5月丁香婷婷综合| 亚洲欧美国产77777| 中文字幕一区二区视频| 亚洲免费在线播放| 亚洲综合一区二区三区| 亚洲第一av色| 蜜桃91丨九色丨蝌蚪91桃色| 美女在线观看视频一区二区| 精品中文av资源站在线观看| 国产精品乡下勾搭老头1| 国产99久久久久久免费看农村| 风间由美一区二区av101| 成人午夜电影网站| 99riav久久精品riav| 欧美在线你懂得| 日韩视频一区在线观看| 久久久久国产免费免费| 国产精品久久久久婷婷| 亚洲一级不卡视频| 美女视频黄a大片欧美| 国产中文字幕精品| 99久久精品久久久久久清纯| 欧美曰成人黄网| 日韩免费电影一区| 中文字幕乱码亚洲精品一区| 一区二区三区免费| 激情亚洲综合在线| 色诱视频网站一区| 日韩视频一区二区| 中文字幕国产精品一区二区| 一区二区三区国产精品| 久久超级碰视频| 一本高清dvd不卡在线观看| 精品婷婷伊人一区三区三| 久久亚洲一级片| 一区av在线播放| 久草精品在线观看| 欧洲在线/亚洲| 精品对白一区国产伦| 亚洲欧美日韩一区二区三区在线观看| 香蕉av福利精品导航| 成人动漫一区二区三区| 欧美高清www午色夜在线视频| 国产欧美日韩在线观看| 视频在线观看一区| 99久久综合99久久综合网站| 91精品久久久久久久91蜜桃| 中文字幕一区二区视频| 精品午夜一区二区三区在线观看 | 极品少妇一区二区| 欧美性三三影院| 欧美国产精品一区二区三区| 日韩黄色免费网站| 91免费视频网| 国产女人18毛片水真多成人如厕| 亚洲韩国一区二区三区| 成人国产精品免费观看视频| 日韩欧美国产成人一区二区| 亚洲一区二区三区在线播放 | 美女视频网站黄色亚洲| 在线免费精品视频| 国产精品护士白丝一区av| 国产精品一卡二卡在线观看| 日韩精品一区二区三区中文不卡 | 免费精品视频在线| 欧美午夜免费电影| 亚洲日本在线a| 成人国产电影网| 欧美国产1区2区| 国产精品一区二区不卡| 精品国精品国产尤物美女| 日本伊人色综合网| 欧美群妇大交群的观看方式 | 国产欧美日韩在线| 国产一区二区三区在线观看免费| 欧美一区二区三区视频免费| 婷婷久久综合九色综合绿巨人| 色噜噜狠狠色综合中国| 亚洲欧美日韩中文字幕一区二区三区 | 成人a免费在线看|