package com.ht.ui.util;

import com.ht.ui.user.UserLoginDialog;
import com.ht.util.UserSession;
import com.ht.web.mongo.domain.User;

public abstract class UserSecurityUtil {

	/**
	 * 用户权限工具类, 用于实现异步的用户权限验证, 如果用户未登录或登录超时, 则打开登录对话框 用户已登录或登录完成(可能登录失败),
	 * 调用run方法. 例如: <br/>
	 * 
	 * Runnable run = new Runnable() {<br/>
	 * 		public void run() {<br/>
	 *           User user = UserSession.INSTANCE.getUser();<br/>
	 *           if (user.getGroup().getEnergyStatistic()) {<br/>
	 *           	showView(energyChartViewer); <br/>
	 *           } else {<br/>
	 *           	Label label = new Label("您所在的用户组没有权限执行该操作!"); <br/>
	 *           	label.setId("modal_message");<br/>
	 *           	showModalMessage(label); <br/>
	 *           } <br/>
	 * }};<br/>
	 * 注意该方法只能在UI线程中执行<br/>
	 * @param run
	 */
	public static void verifyUserAuthority(Runnable run) {
		if (UserSession.INSTANCE.getUser() == null) {
			UserLoginDialog.getInstance().showDialog(run);
		} else {
			run.run();
		}
	}
}
