zoukankan      html  css  js  c++  java
  • C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本

    还是我上次提出的那个问题
    问题:
    假设一个订单表,
    1.角色A可以看自己的
    2.角色B可以看工作组的
    3.角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)
    4.角色D可以看整个部门的
    5.角色E可以看整个分公司的
    6.角色F可以看各分子公司的

    参考代码如下:代码量会非常小,而且根本不需要写6个函数的,其实就按钮3的方法其实可以同时满足6个需求的

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace DotNet.Example
    {
        using DotNet.WinForm;
        using DotNet.Utilities;
        using DotNet.Business;
    
        public partial class FrmByPermission : BaseForm
        {
            public FrmByPermission()
            {
                InitializeComponent();
            }
    
            /*
                问题:假设一个订单表,角色A可以看自己的,角色B可以看工作组的,
                角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明),角色D可以看整个部门的,
                角色E可以看整个分公司的,角色F可以看各分子公司的,这该怎么做,还有怎样配置,谢谢。 
                 */
    
            private void btnGetUser1_Click(object sender, EventArgs e)
            {
                // 1: 定义几个操作权限、谁有什么操作来控制,数据权限。
                // 2: 系统里总有一个地方需要硬编码,例如 查看全公司的人员档案的权限。
                // 3: 权限编码,用中文还是用英文,其实是一样的,主要看目标人群是什么, “AllCompany”权限 == “全公司”权限
                // 4: 在上面的权限限制的基础上,继续+了条件表达式的2次限制权限
    
                // 保存用户的设置
                BaseParameterManager parameterManager = new BaseParameterManager();
                parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);
    
                // 读取用户的积分条件设置
                string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");
    
                string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByPermission(whereConditional);
            }
    
            private void btnGetUser2_Click(object sender, EventArgs e)
            {
                // 1: 在某个角色,就当是有相应的权限。
                // 2: 有个角色就叫“全公司”数据查看的角色,例如“AllCompany”
                // 3: 角色名称,用英文、用中文是一样的。
                // 4: 在上面的权限限制的基础上,继续+了条件表达式的2次限制权限
    
                // 保存用户的设置
                BaseParameterManager parameterManager = new BaseParameterManager();
                parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);
    
                // 读取用户的积分条件设置
                string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");
    
                string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission(whereConditional);
            }
    
            private void btnGetUser21_Click(object sender, EventArgs e)
            {
                // 角色A可以看自己的
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission();
            }
    
            private void btnGetUser22_Click(object sender, EventArgs e)
            {
                // 角色B可以看工作组的
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission();
            }
    
            private void btnGetUser23_Click(object sender, EventArgs e)
            {
                // 角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)
                
                // 保存用户的设置
                BaseParameterManager parameterManager = new BaseParameterManager();
                parameterManager.SetParameter("User", this.UserInfo.Id, "Score", this.txtScore.Text);
    
                // 读取用户的积分条件设置
                string score = parameterManager.GetParameter("User", this.UserInfo.Id, "Score");
    
                string whereConditional = BaseUserEntity.FieldScore + "<= " + score;
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission(whereConditional);
            }
    
            private void btnGetUser24_Click(object sender, EventArgs e)
            {
                // 角色D可以看整个部门
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission();
            }
    
            private void btnGetUser25_Click(object sender, EventArgs e)
            {
                // 角色E可以看整个分公司
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission();
            }
    
            private void btnGetUser26_Click(object sender, EventArgs e)
            {
                // 角色F可以看各分子公司
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                this.drgUser.DataSource = userManager.GetUserByRolePermission();
            }
        }
    }
  • 相关阅读:
    hdu 5726 GCD
    codeforces 982C Cut 'em all!
    codeforces 982B Bus of Characters
    codeforces 982A Row
    codeforces 983B XOR-pyramid
    codeforces 979D Kuro and GCD and XOR and SUM
    codeforces 983A Finite or not?
    codeforces 984B Minesweeper
    codeforces 979C Kuro and Walking Route
    codeforces 979B Treasure Hunt
  • 原文地址:https://www.cnblogs.com/jirigala/p/4015581.html
Copyright © 2011-2022 走看看