platform/masterPage.master.cs

303 lines
9.6 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using DeiNiu.wms.Logical;
namespace ajax
{
public partial class DeiNiuMasterPage : System.Web.UI.MasterPage
{
public LEmployee lem;
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Request.QueryString["___command"]))
{
string cmd = Request.QueryString["___command"];
if (cmd == "ClearSession")
{
if ((Session["CurrentUser"] != null))
{
if( System.Configuration.ConfigurationManager.AppSettings["sessionstate"] != "InProc")
if (Session["CurrentUserId"] != null)
{
// ((ArrayList)Application["userlst"]).Remove(Session["CurrentUserAccount"].ToString());
DeiNiu.RequestLog logobj = new DeiNiu.RequestLog();
logobj.LogoutLog(int.Parse(Session["CurrentUserId"].ToString()));
}
}
Session.Abandon(); //清空Session, all sessions will be clear ? no kiding, it will obsolete the current session.
}
}
//页面不允许返回操作。
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddMinutes(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
try
{
// if (Session["CurrentUser"] != null)
InitializeUserUi();
}catch(Exception){}
}
/// <summary>
/// 当前用户有没有登录
/// </summary>
void ShowLogin()
{
// login.Visible = lem == null;
lbWelcome.Text = lem != null ? "欢迎您:" + lem.GetEmployee.em_name +",": "";
lkbtnLogin.Text = lem != null ? "退出" : "登录";
// lkIndex.Visible = lem != null;
divAuhtority.Visible = lem != null;
lkDesktop.Visible = lem != null;
leftMenu.Visible = lem!=null;
lkkanban.Visible = lem != null;
ImageBtnHelp.Visible = leftMenu.Visible;
}
/// <summary>
/// 根据用户权限,初始化用户界面,菜单等
/// </summary>
public void InitializeUserUi()
{
lem = (LEmployee)Session["CurrentUser"];
if (lem != null) setTree(); else treeMenu.Nodes.Clear();
ShowLogin();
}
public UpdatePanel UpdatePanelMaster
{
get
{
return UpdatePanel1;
}
}
/// <summary>
/// 构建普通权限列表
/// </summary>
private void setTree()
{
treeMenu.Nodes.Clear();
BindAuthTree2("0", null, new LAuthority().getAllActiveData().Tables[0].DefaultView);
if (lem != null)
{
// if( lem.GetEmployee.em_account !="Root")
{
ArrayList al = new LRoleAuthority().GetPublicAuthorityList();
removeUnAuthoritedMenu(lem.AuthList ,al ,treeMenu.Nodes);
}
}
/* else
{
BindAuthTree2("0", null, new LRoleAuthority().GetPublicAuthorityTable().DefaultView);
}*/
}
void removeUnAuthoritedMenu(ArrayList toKeepAuthority,ArrayList toKeepPublic, TreeNodeCollection nd)
{
// foreach (TreeNode node in nd)
for (int i = 0; i < nd.Count;i++ )
{
TreeNode node = nd[i];
// foreach (TreeNode cnd in node.ChildNodes)
for (int j = 0; j < node.ChildNodes.Count; j++)
{
TreeNode cnd = node.ChildNodes[j];
if (cnd.ChildNodes.Count > 0)
{
removeUnAuthoritedMenu(toKeepAuthority, toKeepPublic,cnd.ChildNodes);
}
else
if (string.IsNullOrEmpty(cnd.NavigateUrl) || lem.GetEmployee.em_account !="Root" && !(toKeepAuthority.Contains(cnd.NavigateUrl.ToUpper()) || toKeepPublic.Contains(cnd.NavigateUrl.ToUpper())))
{
node.ChildNodes.Remove(cnd);
j--;
}
}
if (node.ChildNodes.Count == 0)
{
nd.Remove(node);
i--;
}
}
}
public void BindAuthTree2(string id, TreeNode pNode, DataView dv)
{
dv.RowFilter = "auth_uplevel = '" + id + "' and auth_publicinfomation=0";
foreach (DataRowView row in dv)
{
TreeNode node = new TreeNode();
string authLink = row["auth_link"].ToString();
node.Value = row["ID"].ToString();
node.Expanded = true;
if (authLink == string.Empty || authLink.Trim().Length < 6) //not *.aspx
{
node.Text = "<strong>" + row["auth_name"] + "</strong>";
node.SelectAction = TreeNodeSelectAction.None;
node.ShowCheckBox = false;
}
else
{
node.Text = row["auth_name"].ToString();
node.NavigateUrl = authLink;
}
if (pNode == null)
//说明是根节点
{
treeMenu.Nodes.Add(node);
}
else
{
pNode.ChildNodes.Add(node);
}
BindAuthTree2(node.Value, node, new DataView(dv.Table));
}
}
public void BindAuthTree(string id, TreeNode pNode, DataView dv)
{
dv.RowFilter = "auth_uplevel = '" + id + "'";
foreach (DataRowView row in dv)
{
TreeNode node;
string authLink = row["auth_link"].ToString();
if (authLink == string.Empty || authLink.Trim().Length < 6) //not *.aspx
{
// node = new TreeNode("<strong>" + row["auth_name"] + "</strong>", row["ID"].ToString() ,"","","");
node = new TreeNode();
node.Text = "<strong>" + row["auth_name"] + "</strong>";
node.Value = row["ID"].ToString();
}
else
{
node = new TreeNode(row["auth_name"].ToString(), row["ID"].ToString(), "", authLink, "");
}
node.Expanded = true;
if (pNode == null)
//说明是根节点
{
treeMenu.Nodes.Add(node);
}
else
{
pNode.ChildNodes.Add(node);
}
BindAuthTree(node.Value, node, new DataView(dv.Table));
}
}
void Login()
{
if (Session["CurrentUser"]==null) //not login
{
Response.Redirect("~/login.aspx");
}
else
{
((ArrayList)Application["userlst"]).Remove(lem.GetEmployee.em_account);
DeiNiu.RequestLog logobj = new DeiNiu.RequestLog();
logobj.LogoutLog(int.Parse(Session["CurrentUserId"].ToString()));
Application["usercnt"] = Convert.ToInt32(Application["usercnt"].ToString()) - 1;
Session.RemoveAll();
Session.Abandon();
Response.Redirect("~/login.aspx");
}
}
protected void lkbtnLogin_Click(object sender, EventArgs e)
{
Login();
}
public ScriptManager ScriptMgr
{
get
{
return this.ScriptManager1;
}
}
protected void lkIndex_Click(object sender, EventArgs e)
{
Response.Redirect("~/index.aspx");
}
protected void lkDesktop_Click(object sender, EventArgs e)
{
Response.Redirect("~/desktop.aspx");
}
protected void lklogin_Click(object sender, EventArgs e)
{
Login();
}
protected void LinkHelp_Click(object sender, EventArgs e)
{
 
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string requestPage = Request.AppRelativeCurrentExecutionFilePath;
string helpDoc = Request.ApplicationPath+ "/ug/"+ requestPage.Substring(2, requestPage.IndexOf(".aspx")-2)+".html";
// string helpDoc = siteName + requestPage.Substring(2, requestPage.IndexOf(".aspx") - 2) + ".html";
// if (!System.IO.File.Exists(Server.MapPath(helpDoc)))
// helpDoc = siteName+ "/nohelpdoc.html"; // helpDoc = Request.ApplicationPath+ "/ug/nohelpdoc.html";
string newWindow = "openwin('" + helpDoc + "');";
ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "alert", newWindow, true);
}
protected void lkkanban_Click(object sender, EventArgs e)
{
Response.Redirect("~/wms/Charts.aspx");
}
}
}