roles.ascx.cs
来自「BugNET is an issue tracking and project 」· CS 代码 · 共 165 行
CS
165 行
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BugNET.BusinessLogicLayer;
namespace BugNET.Administration.Users.UserControls
{
/// <summary>
///
/// </summary>
public partial class Roles : System.Web.UI.UserControl
{
/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void Page_Load(object sender, EventArgs e)
{
lblError.Visible = false;
}
/// <summary>
/// Binds the data.
/// </summary>
private void BindData()
{
MembershipUser user = ITUser.GetUser(UserId);
lblUserName.Text = user.UserName;
dropProjects.DataSource = Project.GetAllProjects();
dropProjects.DataBind();
if (ITUser.IsInRole(Globals.SuperUserRole))
{
chkSuperUsers.Visible = true;
chkSuperUsers.Checked = ITUser.IsInRole(lblUserName.Text, 0, Globals.SuperUserRole);
}
}
/// <summary>
/// Handles the SelectedIndexChanged event of the ddlProjects control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void ddlProjects_SelectedIndexChanged(object sender, EventArgs e)
{
if (dropProjects.SelectedValue != 0)
{
RoleList.Items.Clear();
int projectId = dropProjects.SelectedValue;
List<Role> roles = Role.GetRolesByProject(projectId);
foreach (Role r in roles)
{
if (r.ProjectId != 0)
{
ListItem roleListItem = new ListItem();
roleListItem.Text = r.Name;
roleListItem.Value = r.Id.ToString();
roleListItem.Selected = ITUser.IsInRole(lblUserName.Text,projectId,r.Name);
RoleList.Items.Add(roleListItem);
}
}
}
}
/// <summary>
/// Handles the CheckChanged event of the chkSuperUsers control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void chkSuperUsers_CheckChanged(object sender, EventArgs e)
{
string userName = lblUserName.Text;
if (chkSuperUsers.Checked && !ITUser.IsInRole(userName, 0, Globals.SuperUserRole))
Role.AddUserToRole(userName, 1);
else if (!chkSuperUsers.Checked && ITUser.IsInRole(userName, 0, Globals.SuperUserRole))
Role.RemoveUserFromRole(userName, 1);
}
/// <summary>
/// CMDs the update roles.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void cmdUpdateRoles_Click(object sender, EventArgs e)
{
UpdateRolesFromList();
BindData();
}
/// <summary>
/// Binds a data source to the invoked server control and all its child controls.
/// </summary>
public override void DataBind()
{
BindData();
}
/// <summary>
/// Updates the roles from list.
/// </summary>
private void UpdateRolesFromList()
{
string userName = lblUserName.Text;
//if (chkSuperUsers.Visible && !ITUser.IsInRole(userName,0,Globals.SuperUserRole))
// Role.AddUserToRole(userName, 1);
//else if (chkSuperUsers.Visible && !ITUser.IsInRole(userName, 0, Globals.SuperUserRole))
// Role.RemoveUserFromRole(userName, 1);
foreach (ListItem roleListItem in RoleList.Items)
{
string roleName = roleListItem.Value;
bool enableRole = roleListItem.Selected;
if (enableRole && !ITUser.IsInRole(userName,dropProjects.SelectedValue, roleName))
{
Role.AddUserToRole(userName, Convert.ToInt32(roleListItem.Value));
}
else if (!enableRole && ITUser.IsInRole(userName,dropProjects.SelectedValue, roleName))
{
Role.RemoveUserFromRole(userName, Convert.ToInt32(roleListItem.Value));
}
}
lblError.Text = "The users roles have been updated successfully.";
lblError.Visible = true;
}
/// <summary>
/// Gets the user id.
/// </summary>
/// <value>The user id.</value>
public Guid UserId
{
get
{
if (Request.QueryString["user"] != null || Request.QueryString["user"].Length != 0)
try
{
return new Guid(Request.QueryString["user"].ToString());
}
catch
{
throw new Exception("The user querystring parameter is not properly formed");
}
else
return Guid.Empty;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?