C#.NET 大型通用信息化系統集成快速開發平臺 4.1 版本 - .NET商業化成品成熟各類數據權限的需求對應例子代碼

仍是我上次提出的那個問題
問題:
假設一個訂單表,
1.角色A能夠看本身的
2.角色B能夠看工做組的
3.角色C能夠看金額是1000元如下的(自定義條件是否可行?若是能夠,請詳細說明)
4.角色D能夠看整個部門的
5.角色E能夠看整個分公司的
6.角色F能夠看各分子公司的函數

參考代碼以下:代碼量會很是小,並且根本不須要寫6個函數的,其實就按鈕3的方法其實能夠同時知足6個需求的this

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();
        }
    }
}
相關文章
相關標籤/搜索