edit_user_permissions.aspx
来自「Bug管理系统」· ASPX 代码 · 共 245 行
ASPX
245 行
<%@ Page language="C#"%>
<!--
Copyright 2002-2005 Corey Trager
Distributed under the terms of the GNU General Public License
-->
<!-- #include file = "inc.aspx" -->
<script language="C#" runat="server">
string usid;
String sql;
DbUtil dbutil;
Security security;
///////////////////////////////////////////////////////////////////////
void Page_Load(Object sender, EventArgs e)
{
Util.do_not_cache(Response);
dbutil = new DbUtil();
security = new Security();
security.check_security(dbutil, Request, Response, Security.MUST_BE_ADMIN);
title.InnerText = Util.get_setting("AppTitle","BugTracker.NET") + " - "
+ "edit user per-project permissions";
usid = Util.sanitize_integer(Request["id"]);
if (!IsPostBack)
{
back_href.HRef = "edit_user.aspx?id=" + usid;
// populate permissions grid
sql = @"Select pj_name, pj_id, isnull(pu_permission_level,$dpl) [pu_permission_level]
from projects
left outer join project_user_xref on pj_id = pu_project
and pu_user = $us
order by pj_name";
sql = sql.Replace("$us",usid);
sql = sql.Replace("$dpl", Util.get_setting("DefaultPermissionLevel","2"));
DataSet ds = dbutil.get_dataset(sql);
MyDataGrid.DataSource=ds.Tables[0].DefaultView;
MyDataGrid.DataBind();
// populate project dropdown
sql = @"select pj_id, pj_name
from projects
order by pj_name";
DataView projects_dv = dbutil.get_dataview(sql);
forced_project.DataSource = projects_dv;
forced_project.DataTextField = "pj_name";
forced_project.DataValueField = "pj_id";
forced_project.DataBind();
forced_project.Items.Insert(0, new ListItem("[no forced project]", "0"));
// populate forced project
sql = @"select isnull(us_forced_project,0) from users where us_id = $us";
sql = sql.Replace("$us",usid);
int current_forced_project = (int) dbutil.execute_scalar(sql);
foreach (ListItem li in forced_project.Items)
{
if (Convert.ToInt32(li.Value) == current_forced_project)
{
li.Selected = true;
break;
}
}
}
}
void Page_Unload(Object sender, EventArgs e)
{
if (dbutil != null) {dbutil.close();}
}
///////////////////////////////////////////////////////////////////////
void on_update (Object sender, EventArgs e)
{
// first add the missing recs
sql = @"insert into project_user_xref (pu_project, pu_user)
select pj_id, $us
from projects
where pj_id not in (select pu_project from project_user_xref where pu_user = $us)";
sql = sql.Replace("$us",usid);
dbutil.execute_nonquery(sql);
// now update all the recs
string sql_batch = "";
RadioButton rb;
string permission_level;
foreach (DataGridItem dgi in MyDataGrid.Items)
{
sql = "update project_user_xref set pu_permission_level = $pu where pu_user = $us and pu_project = $pj;\n";
sql = sql.Replace("$us", usid);
sql = sql.Replace("$pj", Convert.ToString(dgi.Cells[1].Text));
rb = (RadioButton) dgi.FindControl("none");
if (rb.Checked)
{
permission_level = "0";
}
else
{
rb = (RadioButton) dgi.FindControl("readonly");
if (rb.Checked)
{
permission_level = "1";
}
else
{
rb = (RadioButton) dgi.FindControl("reporter");
if (rb.Checked)
{
permission_level = "3";
}
else
{
permission_level = "2";
}
}
}
sql = sql.Replace("$pu", permission_level);
// add to the batch
sql_batch += sql;
}
sql = "update users set us_forced_project = $fp where us_id = $us";
sql = sql.Replace("$us", usid);
sql = sql.Replace("$fp", forced_project.SelectedItem.Value);
sql_batch += sql;
dbutil.execute_nonquery(sql_batch);
msg.InnerText = "Permissions have been updated.";
}
</script>
<html>
<head>
<title id="title" runat="server">btnet edit user</title>
<link rel="StyleSheet" href="btnet.css" type="text/css">
</head>
<body>
<% security.write_menu(Response, "admin"); %>
<div class=align><table border=0><tr><td>
<a id="back_href" runat="server" href="">back to user "<% Response.Write(Request["label"]); %>"</a>
<p>
<form class=frm runat="server">
<table border=0 cellpadding=3>
<tr>
<td colspan=2 class=lbl>Force user to add new <% Response.Write(Util.get_setting("PluralBugLabel","bug")); %> to this project:
<asp:DropDownList id="forced_project" runat="server">
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan=2>
<ASP:DataGrid id="MyDataGrid" runat="server" BorderColor="black" CssClass="datat" CellPadding="3" AutoGenerateColumns="false">
<HeaderStyle cssclass="datah"></HeaderStyle>
<ItemStyle cssclass="datad"></ItemStyle>
<Columns>
<asp:BoundColumn HeaderText="Project" DataField="pj_name"/>
<asp:BoundColumn HeaderText="Project" DataField="pj_id" Visible="False"/>
<asp:TemplateColumn HeaderText="Permissions">
<ItemTemplate>
<asp:RadioButton GroupName="permissions" text="none" value=0 ID="none" runat="server"
Checked=<%# ((int)(( DataRowView ) Container.DataItem ) [ "pu_permission_level" ] == 0 ) %>/>
<asp:RadioButton GroupName="permissions" text="view only" value=1 ID="readonly" runat="server"
Checked=<%# ((int)(( DataRowView ) Container.DataItem ) [ "pu_permission_level" ] == 1 ) %>/>
<asp:RadioButton GroupName="permissions" text="report (add and comment only)" value=3 ID="reporter" runat="server"
Checked=<%# ((int)(( DataRowView ) Container.DataItem ) [ "pu_permission_level" ] == 3 ) %>/>
<asp:RadioButton GroupName="permissions" text="all (add and edit)" value=2 ID="edit" runat="server"
Checked=<%# ((int)(( DataRowView ) Container.DataItem ) [ "pu_permission_level" ] == 2 ) %>/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</ASP:DataGrid>
<tr>
<td colspan=2 align=left>
<span runat="server" class=err id="msg"> </span>
<tr>
<td colspan=2 align=center>
<input runat="server" class=btn type=submit id="sub" value="Update" OnServerClick="on_update">
<td> </td>
</td>
</tr>
</table>
</form>
</td></tr></table></div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?