#region
|
|
using System;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Drawing.Imaging;
|
using System.Windows.Forms;
|
using CSFrameworkV5.Business;
|
using CSFrameworkV5.Business.BLL_Permission;
|
using CSFrameworkV5.Common;
|
using CSFrameworkV5.Core;
|
using CSFrameworkV5.Core.Common;
|
using CSFrameworkV5.Library.CommonClass;
|
using CSFrameworkV5.Models;
|
using DevExpress.XtraEditors;
|
using DevExpress.XtraEditors.Controls;
|
using DevExpress.XtraGrid;
|
using DevExpress.XtraGrid.Views.Grid;
|
using DevExpress.XtraTab;
|
|
///*************************************************************************/
|
///*
|
///* 文件名 :frmUser.cs
|
///* 程序说明 : 用户管理窗体
|
///* 原创作者 :www.csframework.com
|
///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利.
|
///*
|
///**************************************************************************/
|
|
#endregion
|
|
namespace CSFrameworkV5.Library.PermissionForms
|
{
|
public partial class frmUser : frmBaseDataForm
|
{
|
private UserActionsView _ActionView;
|
private bllUser _BLL = new bllUser(); //用户业务类
|
private bool _IsLoadMyGroupData;
|
private bool _IsLoadMyPermissionView;
|
|
private bool _IsLoadMyRoleData;
|
|
public frmUser()
|
{
|
InitializeComponent();
|
InitializeForm();
|
}
|
|
private void btnDeleteSignImg_Click(object sender, EventArgs e)
|
{
|
var row = _BLL.DataBinder.Rows[0];
|
row[tb_MyUser.SignImg] = CImageLibrary.GetEmptyImageByte(); //初始化空照片
|
}
|
|
private void btnEmpty_Click(object sender, EventArgs e)
|
{
|
txt_Account.Text = "";
|
txt_Account.Focus();
|
}
|
|
private void btnLoadSignImg_Click(object sender, EventArgs e)
|
{
|
var dlg = new OpenFileDialog();
|
dlg.Filter = "图片文件(*.jpg,*.png,*.bmp)|*.jpg;*.png;*.bmp";
|
if (dlg.ShowDialog() == DialogResult.OK)
|
{
|
var row = _BLL.DataBinder.Rows[0];
|
var img = Image.FromFile(dlg.FileName);
|
picSign.Image =
|
img; // CImageLibrary.ResizeImage(img, 640, 640);
|
row[tb_MyUser.SignImg] =
|
CImageLibrary.GetImageBytes(picSign.Image,
|
ImageFormat.Jpeg);
|
}
|
}
|
|
private void btnQuery_Click(object sender, EventArgs e)
|
{
|
try
|
{
|
frmWaitingEx.ShowMe(this);
|
var dt = _BLL.Search(txt_Account.Text);
|
gcSummary.DataSource = null;
|
gcSummary.DataSource = dt;
|
if (gvSummary.RowCount == 0) Msg.Warning("没有查询结果.");
|
}
|
finally
|
{
|
frmWaitingEx.HideMe(this);
|
}
|
}
|
|
/// <summary>
|
/// 改变按钮状态
|
/// </summary>
|
/// <param name="currentState"></param>
|
protected override void ButtonStateChanged(UpdateType currentState)
|
{
|
SetDetailEditorsAccessable(gcDetailEditor, DataChanged);
|
|
//新增状态下显示密码输入框
|
gcPassword.Visible = UpdateType.Add == currentState;
|
|
//管理员能锁定用户
|
chkIsLocked.Enabled = Loginer.CurrentUser.IsAdmin();
|
|
txtLoginCounter.Properties.ReadOnly = true;
|
txtLastLogoutTime.Properties.ReadOnly = true;
|
|
//仅管理员可以给用户分配帐套
|
ucDataSets.Enabled =
|
IsAddOrEditMode && Loginer.CurrentUser.IsAdmin();
|
|
SetLoadingTag(false);
|
|
btnLoadSignImg.Enabled = IsAddOrEditMode;
|
btnDeleteSignImg.Enabled = IsAddOrEditMode;
|
txtLastLogoutTime.ReadOnly = true;
|
txtLoginCounter.ReadOnly = true;
|
}
|
|
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
|
{
|
menuLoad.Enabled = IsAddOrEditMode;
|
menuClear.Enabled = IsAddOrEditMode;
|
}
|
|
public override void DoAdd(IButtonInfo sender)
|
{
|
try
|
{
|
_BLL.CreateDataBinder(null);
|
DoBindingSummaryEditor(_BLL
|
.DataBinder); //显示主表记录详细资料
|
base.DoAdd(sender);
|
|
SetEditorBindingValue(txtPassword1, Globals.DEF_PWD, true);
|
SetEditorBindingValue(txtPassword2, Globals.DEF_PWD, true);
|
SetEditorBindingValue(chkIsLocked, "N", true);
|
|
LoadMyPermissionView(false);
|
LoadMyGroupData(false);
|
LoadMyRoleData(false);
|
|
ShowDetailPage(true);
|
}
|
catch (Exception e)
|
{
|
Msg.ShowException(e);
|
}
|
}
|
|
protected void DoBindingSummaryEditor(DataTable summary)
|
{
|
try
|
{
|
if (summary == null) return;
|
|
DoBindingEditorPanel(gcDetailEditor, summary);
|
|
DataBinder.BindingControl(ucDataSets, summary,
|
tb_MyUser.DataSets, "EditValue");
|
DataBinder.BindingImageEdit(picPhoto, summary,
|
tb_MyUser.PhotoImg);
|
DataBinder.BindingImageEdit(picSign, summary,
|
tb_MyUser.SignImg);
|
|
if (summary is DataTable)
|
{
|
var row = summary.Rows[0];
|
if (row[tb_MyUser.PhotoImg] == DBNull.Value)
|
row[tb_MyUser.PhotoImg] =
|
CImageLibrary.GetEmptyImageByte(); //避免加载图片出错
|
|
if (row[tb_MyUser.SignImg] == DBNull.Value)
|
row[tb_MyUser.SignImg] =
|
CImageLibrary.GetEmptyImageByte(); //避免加载图片出错
|
}
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
public override void DoCancel(IButtonInfo sender)
|
{
|
if (Msg.AskQuestion("要取消修改吗?")) base.DoCancel(sender);
|
}
|
|
public void DoCopyPermission(IButtonInfo sender)
|
{
|
var sourceUser = "";
|
if (gvSummary.FocusedRowHandle >= 0)
|
{
|
sourceUser =
|
ConvertEx.ToString(
|
gvSummary.GetFocusedRowCellValue(tb_MyUser.Account));
|
frmCopyPermission.Execute(sourceUser, "");
|
}
|
else
|
{
|
Msg.Warning("没有数据!");
|
}
|
}
|
|
public override void DoDelete(IButtonInfo sender)
|
{
|
try
|
{
|
if (!Msg.AskQuestion("确定要删除?")) return;
|
|
AssertFocusedRow();
|
|
var summary =
|
_SummaryView.GetDataRow(_SummaryView.FocusedRowHandle);
|
var b = _BLL.Delete(summary["Account"].ToStringEx());
|
AssertEqual(b, true, "删除记录时发生错误!");
|
|
base.DoDelete(sender);
|
DeleteSummaryRow(_SummaryView.FocusedRowHandle); //删除Summary资料行
|
if (_SummaryView.FocusedRowHandle < 0) //删除了最後一条记录. 显示Summary页面.
|
{
|
ShowSummaryPage(true);
|
}
|
else
|
{
|
_BLL.CreateDataBinder(
|
_SummaryView.GetDataRow(_SummaryView.FocusedRowHandle));
|
DoBindingSummaryEditor(_BLL
|
.DataBinder); //显示主表记录详细资料
|
base.DoDelete(sender);
|
}
|
}
|
catch (Exception e)
|
{
|
Msg.ShowException(e);
|
}
|
}
|
|
public override void DoEdit(IButtonInfo sender)
|
{
|
try
|
{
|
AssertFocusedRow();
|
base.DoEdit(sender);
|
DoViewContent(sender);
|
ShowDetailPage(true);
|
}
|
catch (Exception e)
|
{
|
Msg.ShowException(e);
|
}
|
}
|
|
//public override void DoPrint(IButtonInfo button) {
|
// //DevExpress Report DEMO
|
// // new frmRptUserList().ShowDialog();
|
|
// //FastReport DEMO
|
// //new frmReportUser().ShowDialog();
|
//}
|
|
public override void DoSave(IButtonInfo sender)
|
{
|
try
|
{
|
UpdateLastControl();
|
|
_BLL.DataBinderRow.EndEdit();
|
|
if (!ValidatingData(_BLL.DataBinderRow)) return;
|
|
if (UpdateType.Add == _UpdateType)
|
{
|
_BLL.DataBinderRow[tb_MyUser.Password] =
|
KeyProvider.Default.Encrypt(txtPassword2.Text); //加密密码
|
_BLL.DataBinderRow[tb_MyUser.CreateTime] = DateTime.Now;
|
}
|
|
var ret = _BLL.Update(); //提交数据
|
if (ret)
|
{
|
UpdateSummaryRow(_BLL
|
.DataBinderRow); //刷新表格内的数据.
|
base.DoSave(sender);
|
_BLL.insrer(txtAccount.Text.ToString(),
|
txtUserName.Text.ToString(),
|
txtPassword2.Text.ToString());
|
Msg.ShowInformation("保存成功!");
|
}
|
else
|
{
|
Msg.Warning("保存失败!");
|
}
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
//当用户在Summary页选择一条记录. 显示当前记录的详细资料及明细表资料.
|
public override void DoViewContent(IButtonInfo sender)
|
{
|
try
|
{
|
AssertFocusedRow(); //检查有无记录.
|
_BLL.CreateDataBinder(
|
_SummaryView.GetDataRow(_SummaryView.FocusedRowHandle));
|
Equals(_BLL.DataBinder, null);
|
base.DoViewContent(sender);
|
DoBindingSummaryEditor(_BLL.DataBinder); //显示主表记录详细资料
|
|
LoadMyPermissionView(false);
|
LoadMyGroupData(false);
|
LoadMyRoleData(false);
|
|
ShowDetailPage(
|
false); //用户点击ViewContent按钮可以显示Summary页
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
private void frmUser_Load(object sender, EventArgs e)
|
{
|
InitButtons();
|
SetViewMode();
|
SetLanguage();
|
|
PermissionBinder.BoundCheckEdit(rep_CheckBox);
|
|
DataBinderTools.BoundOrganization(txtOrg1, imageList1);
|
DataBinderTools.BoundOrganization(txtOrg2, imageList1);
|
|
DataBinderTools.BoundOrganization(repOrg);
|
}
|
|
public override void InitButtons()
|
{
|
base.InitButtons();
|
|
if (ButtonAuthorized(ButtonAuthority.CLONE))
|
{
|
var btnCopyPermission = ToolbarRegister.CreateButton(
|
"btnCopyPermission", "复制权限", ToolBarGroup.扩展功能1,
|
Globals.LoadBitmap("32_CopyPermission.png"),
|
new Size(57, 28), true, true, DoCopyPermission);
|
_buttons.AddButton(btnCopyPermission);
|
}
|
}
|
|
protected override void InitializeForm()
|
{
|
try
|
{
|
_SummaryView = new DevGridView(gvSummary);
|
_ActiveEditor = txtAccount;
|
_DetailGroupControl = gcDetailEditor;
|
|
_ActionView = new UserActionsView(tvMyPermission);
|
|
gvSummary.DoubleClick += OnGridViewDoubleClick; //主表DoubleClict
|
|
frmGridCustomize.RegisterGrid(gvSummary);
|
|
if (!SystemSettings.Current.IsDemoVersion)
|
frmGridCustomize.AddMenuItem(gvSummary, "修改密码",
|
Globals.LoadImage("16_08.png"), OnChangePwdClick,
|
true);
|
|
//管理员才添加弹出菜单
|
if (Loginer.CurrentUser.IsAdmin())
|
{
|
frmGridCustomize.AddMenuItem(gvSummary, "复制权限",
|
Globals.LoadImage("16_01.png"), OnCopyRights, true);
|
frmGridCustomize.AddMenuItem(gvSummary, "解除用户的权限",
|
Globals.LoadImage("16_04.png"), OnCancelRights,
|
false);
|
frmGridCustomize.AddMenuItem(gvSummary, "锁定当前用户",
|
Globals.LoadImage("16_05.png"), OnLockUser, true);
|
frmGridCustomize.AddMenuItem(gvSummary, "解除锁定",
|
Globals.LoadImage("16_06.png"), OnUnLockUser,
|
false);
|
frmGridCustomize.AddMenuItem(gvSummary, "设置为管理员",
|
Globals.LoadImage("Role_32x32.png"), OnSetAdmin,
|
true);
|
frmGridCustomize.AddMenuItem(gvSummary, "解除管理员权限",
|
Globals.LoadImage("16_06.png"), OnUnsetAdmin,
|
false);
|
}
|
|
DevStyle.SetGridControlLayout(gcSummary, false); //表格设置
|
DevStyle.SetSummaryGridViewLayout(gvSummary);
|
|
var data = CommonData.GetSystemDataSet();
|
data.DefaultView.RowFilter = "IsVisible='Y'"; //仅显示可见账套
|
ucDataSets.BindingDataSource(data.DefaultView.ToTable(),
|
tb_DataSet.DataSetID, tb_DataSet.DataSetName);
|
DevStyle.SetGridControlLayout(gcMyRoles, true, true, false,
|
true);
|
DevStyle.SetGridControlLayout(gcMyGroups, true, true, false,
|
true);
|
|
PermissionBinder.BoundCheckEdit(chkIsLocked);
|
|
gcMyGroups.EmbeddedNavigator.ButtonClick += OnGroupButtonClick;
|
gcMyRoles.EmbeddedNavigator.ButtonClick += OnRoleButtonClick;
|
|
ShowSummary(); //下载显示数据.
|
BindingSummaryNavigator(controlNavigatorSummary,
|
gcSummary); //Summary导航条.
|
ShowSummaryPage(true); //一切初始化完毕後显示SummaryPage
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
private void LoadMyGroupData(bool reload)
|
{
|
if (reload || _IsLoadMyGroupData == false)
|
{
|
var user =
|
ConvertEx.ToString(
|
_BLL.DataBinder.Rows[0][tb_MyUser.Account]);
|
var dt = _BLL.GetUserGroups(user);
|
gcMyGroups.DataSource = null;
|
gcMyGroups.DataSource = dt;
|
|
_IsLoadMyGroupData = true;
|
}
|
}
|
|
private void LoadMyPermissionView(bool reload)
|
{
|
if (reload || _IsLoadMyPermissionView == false)
|
{
|
var account = "";
|
if (gvSummary.FocusedRowHandle >= 0)
|
account = gvSummary
|
.GetFocusedRowCellValue(tb_MyUser.Account).ToStringEx();
|
|
//下载生成树相关的基础资料
|
var permission = new bllPermission();
|
_ActionView.UserActionData =
|
permission.GetUserActionsList(account);
|
_ActionView.ActionsData = permission.GetActionData();
|
_ActionView.ActionCustomNameData =
|
permission.GetFormTagCustomName();
|
_ActionView.MenuData = permission.GetMenuData();
|
_ActionView.InitTree(""); //创建树视图
|
_IsLoadMyPermissionView = true;
|
}
|
}
|
|
private void LoadMyRoleData(bool reload)
|
{
|
if (reload || _IsLoadMyRoleData == false)
|
{
|
var user =
|
ConvertEx.ToString(
|
_BLL.DataBinder.Rows[0][tb_MyUser.Account]);
|
var dt = _BLL.GetUserRolesAll(user);
|
gcMyRoles.DataSource = null;
|
gcMyRoles.DataSource = dt;
|
|
_IsLoadMyRoleData = true;
|
}
|
}
|
|
private void menuClear_Click(object sender, EventArgs e)
|
{
|
var row = _BLL.DataBinder.Rows[0];
|
row[tb_MyUser.PhotoImg] =
|
CImageLibrary.GetEmptyImageByte(); //初始化空照片
|
}
|
|
private void menuLoad_Click(object sender, EventArgs e)
|
{
|
var dlg = new OpenFileDialog();
|
dlg.Filter = "图片文件(*.jpg,*.png,*.bmp)|*.jpg;*.png;*.bmp";
|
if (dlg.ShowDialog() == DialogResult.OK)
|
{
|
var row = _BLL.DataBinder.Rows[0];
|
var img = Image.FromFile(dlg.FileName);
|
picPhoto.Image = CImageLibrary.ResizeImage(img, 640, 640);
|
row[tb_MyUser.PhotoImg] =
|
CImageLibrary.GetImageBytes(picPhoto.Image,
|
ImageFormat.Jpeg);
|
}
|
}
|
|
public void OnCancelRights(object sender, EventArgs e)
|
{
|
if (gvSummary.FocusedRowHandle < 0) return;
|
|
Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true,
|
"您不是系统管理员,不允许操作!");
|
|
if (Msg.AskQuestion("确定要解除当前用户的权限吗?"))
|
{
|
var account =
|
gvSummary.GetFocusedRowCellDisplayText(tb_MyUser.Account);
|
if (_BLL.DestroyRights(account))
|
Msg.ShowInformation("已解除当前用户的权限!");
|
else
|
Msg.Warning("操作失败!");
|
}
|
}
|
|
public void OnChangePwdClick(object sender, EventArgs e)
|
{
|
var user = gvSummary.GetDataRow(gvSummary.FocusedRowHandle);
|
var data = new LoginUser();
|
data.Account = user[tb_MyUser.Account].ToStringEx();
|
data.Password = user[tb_MyUser.Password].ToStringEx();
|
data.DBID = Loginer.CurrentUser.DBID;
|
frmModifyPwd.Execute(data, ModifyPwdType.UserManage, this);
|
}
|
|
public void OnCopyRights(object sender, EventArgs e)
|
{
|
DoCopyPermission(null);
|
}
|
|
private bool OnDetailGroupEditorApply(DataTable detail,
|
CheckedListBoxControl listBox)
|
{
|
//新增角色
|
if (listBox.CheckedItems.Count == 0) return true;
|
|
var bll = new bllGroup();
|
|
//取表结构
|
var dt = bll.GetGroupUsers("-");
|
foreach (CheckedListBoxItem o in listBox.CheckedItems)
|
{
|
var rs =
|
detail.Select("GroupCode='" + o.Value.ToStringEx() + "'");
|
if (rs.Length == 0)
|
{
|
var row = dt.NewRow();
|
row[tb_MyGroupUser.Account] = txtAccount.Text;
|
row[tb_MyGroupUser.DataSetID] = Loginer.CurrentUser.DBID;
|
row[tb_MyGroupUser.GroupCode] = o.Value.ToStringEx();
|
dt.Rows.Add(row);
|
}
|
}
|
|
if (dt.Rows.Count > 0)
|
{
|
var ok = bll.Update(dt); //提交数据
|
if (ok) LoadMyGroupData(true); //刷新数据
|
|
return ok;
|
}
|
|
return true;
|
}
|
|
private bool OnDetailRoleEditorApply(DataTable detail,
|
CheckedListBoxControl listBox, DateTime expireDate)
|
{
|
//新增角色
|
if (listBox.CheckedItems.Count == 0) return true;
|
|
var bll = new bllUserRole();
|
|
//取表结构
|
var dt = bll.SearchUserRole("-", "-", DateTime.MaxValue,
|
DateTime.MaxValue);
|
|
foreach (CheckedListBoxItem o in listBox.CheckedItems)
|
{
|
var rs = detail.Select("RoleID='" + o.Value.ToStringEx() + "'");
|
if (rs.Length == 0)
|
{
|
var row = dt.NewRow();
|
row[tb_MyUserRoles.Account] = txtAccount.Text;
|
row[tb_MyUserRoles.CreateTime] = DateTime.Now;
|
row[tb_MyUserRoles.CreateUser] =
|
Loginer.CurrentUser.Account;
|
row[tb_MyUserRoles.DataSetID] = Loginer.CurrentUser.DBID;
|
row[tb_MyUserRoles.ExpireDate] = expireDate;
|
row[tb_MyUserRoles.RoleID] = o.Value;
|
dt.Rows.Add(row);
|
}
|
}
|
|
if (dt.Rows.Count > 0)
|
{
|
var ok = bll.Update(dt); //提交数据
|
if (ok)
|
{
|
LoadMyPermissionView(true);
|
LoadMyGroupData(false);
|
LoadMyRoleData(true);
|
}
|
|
return ok;
|
}
|
|
return true;
|
}
|
|
//新增用户组
|
protected virtual void OnGroupButtonClick(object sender,
|
NavigatorButtonClickEventArgs e)
|
{
|
if (_UpdateType == UpdateType.Add)
|
{
|
Msg.Warning("新增用户状态,请先保存数据!");
|
return;
|
}
|
|
try
|
{
|
var gc = (GridControl)((GridControlNavigator)sender).Parent;
|
var gridView =
|
(GridView)gc.Views[0]; //每个GridControl只有一个GridView.
|
if (e.Button.ImageIndex == DetailButtons.Add ||
|
e.Button.ImageIndex == DetailButtons.Insert)
|
{
|
var detail = gcMyGroups.DataSource as DataTable;
|
var group = new bllGroup().GetLookupData();
|
DataDictCache.Cache.AddLookupText(group,
|
tb_MyGroup.GroupCode, tb_MyGroup.GroupName,
|
"LookupDisplayText");
|
frmDetailItemEditor.Execute(OnDetailGroupEditorApply,
|
detail, group, tb_MyGroup.GroupCode,
|
tb_MyGroup.GroupName, "LookupDisplayText", false);
|
}
|
else if (e.Button.ImageIndex == DetailButtons.Delete)
|
{
|
if (gridView.FocusedRowHandle < 0) return;
|
|
if (Msg.AskQuestion("确定要删除这条记录?"))
|
{
|
var row =
|
gridView.GetDataRow(gridView.FocusedRowHandle);
|
var ok = _BLL.DeleteUserGroup(txtAccount.Text,
|
row[tb_MyGroup.GroupCode].ToStringEx());
|
if (ok) gridView.DeleteRow(gridView.FocusedRowHandle);
|
}
|
}
|
|
e.Handled = true;
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
public void OnLockUser(object sender, EventArgs e)
|
{
|
if (gvSummary.FocusedRowHandle < 0) return;
|
|
Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true,
|
"您不是系统管理员,不允许操作!");
|
|
var isLock =
|
ConvertEx.ToString(
|
gvSummary.GetFocusedRowCellValue(colIsLocked)) == "Y";
|
|
if (isLock)
|
{
|
Msg.Warning("当前用户已是“锁定状态”,不需要操作!");
|
}
|
else
|
{
|
if (Msg.AskQuestion("锁定的用户禁止登录,确定要锁定当前用户吗?"))
|
{
|
var account =
|
gvSummary.GetFocusedRowCellDisplayText(
|
tb_MyUser.Account);
|
if (_BLL.SetLockState(account, true))
|
{
|
gvSummary.SetFocusedRowCellValue(colIsLocked, "Y");
|
gvSummary.UpdateCurrentRow();
|
Msg.ShowInformation("操作成功!");
|
}
|
else
|
{
|
Msg.Warning("操作失败!");
|
}
|
}
|
}
|
}
|
|
//新增角色
|
protected virtual void OnRoleButtonClick(object sender,
|
NavigatorButtonClickEventArgs e)
|
{
|
if (_UpdateType == UpdateType.Add)
|
{
|
Msg.Warning("新增用户状态,请先保存数据!");
|
return;
|
}
|
|
try
|
{
|
var gc = (GridControl)((GridControlNavigator)sender).Parent;
|
var gridView =
|
(GridView)gc.Views[0]; //每个GridControl只有一个GridView.
|
|
//新增角色
|
if (e.Button.ImageIndex == DetailButtons.Add ||
|
e.Button.ImageIndex == DetailButtons.Insert)
|
{
|
var detail = gcMyRoles.DataSource as DataTable;
|
var roles = new bllRole().GetLookupData();
|
DataDictCache.Cache.AddLookupText(roles, tb_MyRole.RoleID,
|
tb_MyRole.RoleName, "LookupDisplayText");
|
|
frmUserRolePicker.Execute(OnDetailRoleEditorApply, detail,
|
roles, tb_MyRole.RoleID,
|
tb_MyRole.RoleName, "LookupDisplayText", false);
|
}
|
else if (e.Button.ImageIndex == DetailButtons.Delete)
|
{
|
//删除角色
|
if (gridView.FocusedRowHandle < 0) return;
|
|
var row = gridView.GetDataRow(gridView.FocusedRowHandle);
|
if (row["RoleType"].ToStringEx() == "组的角色")
|
{
|
Msg.Warning("用户组的角色不可删除!只可删除用户的角色!");
|
return;
|
}
|
|
if (Msg.AskQuestion("确定要删除这条记录?"))
|
{
|
var ok = _BLL.DeleteUserRole(txtAccount.Text,
|
row[tb_MyRole.RoleID].ToStringEx());
|
if (ok)
|
{
|
gridView.DeleteRow(gridView.FocusedRowHandle);
|
LoadMyPermissionView(true);
|
LoadMyGroupData(false);
|
LoadMyRoleData(true);
|
}
|
}
|
}
|
|
e.Handled = true;
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
public void OnSetAdmin(object sender, EventArgs e)
|
{
|
if (gvSummary.FocusedRowHandle < 0) return;
|
|
Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true,
|
"您不是系统管理员,不允许操作!");
|
|
var isAdmin =
|
ConvertEx.ToString(
|
gvSummary.GetFocusedDataRow()[tb_MyUser.FlagAdmin]) == "Y";
|
|
if (isAdmin)
|
{
|
Msg.Warning("当前用户是“管理员”,不需要操作!");
|
}
|
else
|
{
|
if (Msg.AskQuestion("确定要设置当前用户为“管理员”吗?"))
|
{
|
var account =
|
gvSummary.GetFocusedRowCellDisplayText(
|
tb_MyUser.Account);
|
|
//查询数据
|
var dt = _BLL.GetDataByKey(account);
|
dt.Rows[0][tb_MyUser.FlagAdmin] = "Y"; //修改数据
|
var ok = _BLL.Update(dt); //调用保存
|
|
if (ok)
|
{
|
gvSummary.SetFocusedRowCellValue(colFlagAdmin, "Y");
|
gvSummary.UpdateCurrentRow();
|
Msg.ShowInformation("操作成功!");
|
}
|
else
|
{
|
Msg.Warning("操作失败!");
|
}
|
}
|
}
|
}
|
|
public void OnUnLockUser(object sender, EventArgs e)
|
{
|
if (gvSummary.FocusedRowHandle < 0) return;
|
|
Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true,
|
"您不是系统管理员,不允许操作!");
|
|
var isLock =
|
ConvertEx.ToString(
|
gvSummary.GetFocusedRowCellValue(colIsLocked)) == "Y";
|
|
if (!isLock)
|
{
|
Msg.Warning("当前用户不是“锁定状态”,不需要操作!");
|
}
|
else
|
{
|
if (Msg.AskQuestion("确定要解除锁定吗?"))
|
{
|
var account =
|
gvSummary.GetFocusedRowCellDisplayText(
|
tb_MyUser.Account);
|
if (_BLL.SetLockState(account, false))
|
{
|
gvSummary.SetFocusedRowCellValue(colIsLocked, "N");
|
gvSummary.UpdateCurrentRow();
|
Msg.ShowInformation("操作成功!");
|
}
|
else
|
{
|
Msg.Warning("操作失败!");
|
}
|
}
|
}
|
}
|
|
public void OnUnsetAdmin(object sender, EventArgs e)
|
{
|
if (gvSummary.FocusedRowHandle < 0) return;
|
|
Assertion.AssertBool(Loginer.CurrentUser.IsAdmin(), true,
|
"您不是系统管理员,不允许操作!");
|
|
var isAdmin =
|
ConvertEx.ToString(
|
gvSummary.GetFocusedDataRow()[tb_MyUser.FlagAdmin]) == "Y";
|
|
if (!isAdmin)
|
{
|
Msg.Warning("当前用户不是“管理员”,不需要操作!");
|
}
|
else
|
{
|
if (Msg.AskQuestion("确定要解除“管理员”权限吗?"))
|
{
|
var account =
|
gvSummary.GetFocusedRowCellDisplayText(
|
tb_MyUser.Account);
|
|
//查询数据
|
var dt = _BLL.GetDataByKey(account);
|
dt.Rows[0][tb_MyUser.FlagAdmin] = "N"; //修改数据
|
var ok = _BLL.Update(dt); //调用保存
|
|
if (ok)
|
{
|
gvSummary.SetFocusedRowCellValue(colFlagAdmin, "N");
|
gvSummary.UpdateCurrentRow();
|
Msg.ShowInformation("操作成功!");
|
}
|
else
|
{
|
Msg.Warning("操作失败!");
|
}
|
}
|
}
|
}
|
|
protected override void SetDetailEditorsAccessable(Control panel,
|
bool value)
|
{
|
base.SetDetailEditorsAccessable(gcDetailEditor, value);
|
txtAccount.Enabled =
|
_UpdateType != UpdateType.Modify && value; //号码不充许修改.
|
|
gcPassword.Visible = _UpdateType == UpdateType.Add; //只能新增用戶時輸入密碼
|
}
|
|
private void SetLoadingTag(bool value)
|
{
|
_IsLoadMyRoleData = value;
|
_IsLoadMyGroupData = value;
|
_IsLoadMyPermissionView = value;
|
}
|
|
private void ShowSummary()
|
{
|
try
|
{
|
_BLL.GetUsers();
|
DoBindingSummaryGrid(_BLL.SummaryTable); //绑定主表的Grid
|
ShowSummaryPage(true); //显示Summary页面.
|
}
|
catch (Exception ex)
|
{
|
Msg.ShowException(ex);
|
}
|
}
|
|
private void tcMyPermission_SelectedPageChanged(object sender,
|
TabPageChangedEventArgs e)
|
{
|
if (e.Page == tpTreeView) LoadMyPermissionView(false);
|
|
if (e.Page == tpGroup) LoadMyGroupData(false);
|
|
if (e.Page == tpRole) LoadMyRoleData(false);
|
}
|
|
// 检查主表数据是否完整或合法
|
private bool ValidatingData(DataRow summary)
|
{
|
if (txtAccount.Text == string.Empty)
|
{
|
Msg.Warning("请输入用户编号!");
|
txtAccount.Focus();
|
return false;
|
}
|
|
if (txtUserName.Text == string.Empty)
|
{
|
Msg.Warning("请输入用户名!");
|
txtUserName.Focus();
|
return false;
|
}
|
|
if (txtOrg1.Text == string.Empty || txtOrg2.Text == string.Empty)
|
{
|
Msg.Warning("组织架构不能为空!");
|
if (txtOrg1.Text == string.Empty) txtOrg1.Focus();
|
|
if (txtOrg2.Text == string.Empty) txtOrg2.Focus();
|
|
return false;
|
}
|
|
if (_UpdateType == UpdateType.Add)
|
//新增状态输入密码, 如果密码不匹配, 提示信息
|
if (txtPassword1.Text.Trim() == "" || txtPassword2.Text
|
.Trim() == ""
|
|| txtPassword1.Text
|
.Trim() !=
|
txtPassword2.Text.Trim())
|
{
|
Msg.Warning("两次输入密码不正确!");
|
txtPassword1.Focus();
|
return false;
|
}
|
|
if (_UpdateType == UpdateType.Add)
|
if (_BLL.CheckNoExists(txtAccount.Text))
|
{
|
Msg.Warning("用户名已存在!");
|
txtAccount.Focus();
|
return false;
|
}
|
|
return true;
|
}
|
}
|
}
|