欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 运维知识 > windows >内容正文

windows

通用权限管理系统组件 (gpm -ag凯发k8国际

发布时间:2024/10/8 windows 0 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 通用权限管理系统组件 (gpm - general permissions manager) 给信息管理系统加一个初始化的功能,调用存储过程... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

   系统初始化的运行效果如下:

  

    参数表是为了防止反复被初始化的,防止关键数据丢失。

  

  

 

   其实很多人都提过希望有系统初始化的功能,最近稍微空一些,就给系统增加了一个初始化的功能,给大家参考一下。

首先写了一个存储过程如下,把系统中的表都清理干净,存储过程的名字叫“systeminitialize”

view code -- =============================================
-- author:        <吉日嘎拉>
-- create date: <2012.01.18>
-- description:    <初始化系统>
-- =============================================
alter procedure [dbo].[systeminitialize] 
as
begin
    set nocount on;
    
    -- 检查是否已经初始化过系统?只允许初始化一次
    declare @worked int;
    select @worked = worked from base_parameter where id = 10000000 and parametercontent = 'none';
    
    if @worked > 0
    begin
      return;
    end

    -- 名片管理
    truncate table base_businesscard;
    -- 评论表
    truncate table base_comment;
    -- 联络单明细表
    truncate table base_contactdetails;
    -- 联络单主表
    truncate table base_contact;
    -- 系统异常表
    truncate table base_exception;
    -- 文件表
    truncate table base_file;
    -- 文件夹表
    truncate table base_folder;
    -- 数据字典主表(资源)
    -- base_items
    -- 工作流示例—请假单表
    truncate table base_leave;
    -- 系统日志表
    truncate table base_log;
    -- 消息表
    truncate table base_message;
    -- 模块(菜单)表 通用权限以外的全删除
    delete from base_module where allowdelete = 1;
    -- 组织机构、部门表 删除的测试数据
    delete from base_organize where isinnerorganize = 1;
    -- 新闻表
    truncate table base_news;
    -- 系统参数配置表
    delete from base_parameter where (id <> 10000000);
    -- 操作权限存储表
    truncate table base_permission;
    -- 数据集权限存储表
    truncate table base_permissionscope;
    -- 操作权限项定义 删除通用权限意外的全部权限定义
    delete from base_permissionitem where allowdelete = 1;
    -- 项目表
    truncate table base_project;
    -- 员工(职员)表组织关系表
    truncate table base_stafforganize;
    -- 员工(职员)表
    truncate table base_staff;
    -- 序列产生器表
    truncate table base_sequence;
    -- 表字段结构定义说明
    truncate table base_tablecolumns;
    -- 用户送货地址表
    truncate table base_useraddress;
    -- 用户帐户组织关系表
    truncate table base_userorganize;
    -- 用户帐户角色关系表
    truncate table base_userrole;
    -- 用户帐户表
    delete from base_user where username != 'administrator';
    -- 系统角色表
    delete from base_role where code != 'administrators';
    -- 工作日志表
    truncate table base_workreport;
    
    -- 设置已初始化标志,防止反复初始化系统
    update base_parameter set worked = 1, parametercontent = 'processed' where id = 10000000;

end

   在通用权限管理系统组件中调用存储过程的方法如下

view code private void btninitialize_click(object sender, eventargs e)
        {
            // 默认按钮放在第2个按钮上,尽量防止误操作。
            if (messagebox.show(appmessage.msg3000, appmessage.msg0000, messageboxbuttons.okcancel, messageboxicon.question, messageboxdefaultbutton.button2) == dialogresult.ok)
            {
                // 按系统的配置信息动态获取数据库连接
                using (idbhelper dbhelper = dbhelperfactory.gethelper(basesysteminfo.usercenterdbtype))
                {
                    try
                    {
                        // 打开数据库连接
                        dbhelper.open(basesysteminfo.usercenterdbconnection);
                        // 执行存储过程
                        int returnvalue = dbhelper.executenonquery(commandtype.storedprocedure, "systeminitialize");
                        // 成功的提示信息
                        messagebox.show(appmessage.msg3010, appmessage.msg0000, messageboxbuttons.ok, messageboxicon.information);
                        this.btninitialize.enabled = false;
                    }
                    catch (exception ex)
                    {
                        // 在本地文件中记录系统异常信息
                        this.writeexception(ex);
                        throw ex;
                    }
                    finally
                    {
                        // 关闭数据库库连接
                        dbhelper.close();
                    }
                }
            }
        }

    判断当前用户是否已经登录,当前用户是否超级管理员,当前连接的数据库类型等的参考代码如下

view code public override void setcontrolstate()
        {
            // 已经登录了系统,并且是系统管理员才可以做这个服务器端的配置,第一次用时无法配置系统了
            /*
            if (!basesysteminfo.logoned || !this.userinfo.isadministrator)
            {
                this.tcconfirm.tabpages.remove(tpserver);
            }
            
*/
            // 有并发数设置时,不允许重复登录。
            if (this.nuponlinelimit.value > 0)
            {
                this.chkcheckonline.checked = false;
                this.chkcheckonline.enabled = false;
            }
            else
            {
                this.chkcheckonline.enabled = true;
            }
            // 只有系统管理员才可以初始化系统,并却是sqlserver数据库下才运行
            this.btninitialize.visible = basesysteminfo.logoned && basesysteminfo.userinfo.isadministrator;
            if (this.btninitialize.visible)
            {
                if (basesysteminfo.usercenterdbtype == databasetype.sqlserver)
                {
                    string parameter = dotnetservice.instance.parameterservice.getparameter(userinfo, "system""system""initialize");
                    if (!string.isnullorempty(parameter) && parameter.equals("none"))
                    {
                        this.btninitialize.enabled = true;
                    }
                }
            }
        }

    给大家分享一下比较强大的完整的数据库访问组件,经过了7-8年的考研,运行稳定,编码风格良好,完整源码下载地址如下:

    /files/jirigala/dotnet.utilities.rar 

  源码效果图如下:

   

转载于:https://www.cnblogs.com/jirigala/archive/2012/01/18/2325578.html

总结

以上是ag凯发k8国际为你收集整理的通用权限管理系统组件 (gpm - general permissions manager) 给信息管理系统加一个初始化的功能,调用存储过程...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图