NET核心项目实战权限管理系统(7)组织、角色、用户权限-研发项目管理

>>NET核心项目实战权限管理系统(7)组织、角色、用户权限-研发项目管理

NET核心项目实战权限管理系统(7)组织、角色、用户权限-研发项目管理

引言:当今社会市场竞争激烈,软件开发企业想要占据前列需要在研发管理上下功夫,“向管理要效益”已经成为软件开发企业的共识,研发项目管理在软件企业中的普及也是大势所趋。国内做软件项目管理工具的开发商翼发云近几年发展十分迅速,越来越多的软件开发企业认识到研发项目管理的重要性,能切实有效降低成本,规范软件开发流程,提高软件产品质量。国内研发项目管理系统、敏捷开发管理工具的领导品牌翼发云敏捷项目管理系统采用可视化业务流程技术,支持瀑布模型等传统软件研发项目管理,同时也支持scrum等敏捷开发流程,是理想的敏捷开发管理工具,涵盖软件项目管理工作的整个生命周期。为提高国内软件开发企业的项目管理水平,分享一篇企业管理相关的知识文章。

0 ASP.NET核心项目物权管理系统(0)

1 ASP。NET核心项目实战的权限管理系统(1)使用adminlte建立前端 scrum

2 ASP.NET核心项目实战权限管理系统(2)功能与实体设计

3 ASP。NET核心项目真正的版权管理系统(3)通过使用PostgreSQL EntityFramework核心 软件项目管理

4 ASP.NET核心项目物权管理系统(4)依赖于多项目分层实施注入、仓储和服务。

5 ASP.NET核心项目实战权限管理系统(5)用户登录 敏捷开发流程

6 ASP.NET核心项目实战权限管理系统(6)功能管理

7 ASP.NET核心项目版权管理系统(7)组织、角色、用户权限 研发项目管理

8 ASP.NET核心项目版权管理系统(8)功能菜单动态加载

GitHub源地址

前面已经完成项目基本框架搭建及功能菜单管理的具体功能实现,接下来要实现的组织机构管理、用户管理、角色权限管理基本实现方法类似,基本实现步骤如下:

0存储接口定义

在Fonour.Domain项目的IRepositories文件夹下创建继承自泛型接口IRepository<T>的仓储接口,根据实际情况进行接口扩展。

1存储操作的实现

在Fonour.EntityFrameworkCore项目的Repositories文件夹下对上面定义的接口进行实现

2定义DTO和创建实体的映射关系

在Fonour.Application项目中按照功能管理的实现方式,创建对应的Dto类,同时在FonourMapper.cs中增加创建的Dto与具体的实体之间映射关系。

3服务接口的定义和实现

在Fonour.Application中按照实际需要定义应用服务接口及对应实现。

4创建控制器来实现动作

在Fonour.MVC项目中增加对应业务功能的控制器,以及对应操作的Action。

5前台操作

使用AdminLTE,结合ajax操作实现前端相关。

上述操作,可结合代码生成器进行自动生成,会大大增加开发效率。

0组织管理

组织机构管理与功能管理非常类似,都是简单的单表增删改查操作,在界面布局上也一样,左侧为组织机构树,右侧为选中节点对应的子级组织机构列表。同样包含新增顶级、新增、删除、编辑等操作。只需要按照上面介绍的实现步骤,逐步去实现即可,最终效果如下:

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

1角色管理

页面布局设计为,左侧为角色列表,右侧为功能树,单击左侧角色列表时,对已经关联的功能进行勾选显示;同时可在右侧直接修改选中项,对当前角色进行功能权限的调整。

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

1选定事件添加的列表

没有使用table插件,简单的对选中的tr增加click事件处理,单击的tr进行颜色改变,同时清除非选中tr的背景色,事件中捕获到当前选中行的id,进行根据角色id显示对应功能权限的处理。

$(“表&gt;tfoot&gt &gt;TR)。Click(函数(){ $(“表&gt;tfoot&gt &gt;tr.removeattr)(“风格”)$(这)。Attr(“风格”,“背景颜色:# beebff”);selectedrole = $(this)找到(“输入”)。瓦迩();lOAdPermissionByRole(selectedrole));};
根据选定的字符加载功能/功能权限lOAdpermissionbyrole(selectedrole){ $。Ajax({类型:“得到”网址:“/角色/ GetMenusByRole?roleid =”+ selectedrole +“&amp;_t =“新+日期(的时间)(成功),功能(数据){ $(“# treediv”),(“李”)(,(功能){ $(“# treediv”)。Jstree(“uncheck_node”$(本);如果(数据指标)($(this)。Attr(“ID”))!= 1){ $(“# treediv”)。Jstree(“check_node“$(this));} } } } }));

2用户管理

用户管理中,需要对用户进行角色分配,一个用户可以拥有多个角色。角色多选这里使用了select2插件,可以直接通过Bower管理器添加select2的依赖引用,添加后发现样式与现有框架中的样式不太协调,没有再进行调整,直接使用了我以前修改过的select2。

2使用select2

将selcet2文件夹放至Fonour.MVC项目的/wwwroot/lib/文件夹下,修改布局页_Layout.cshtml的内容,增加对select2.css、select2.js、以及中文配置的引用。

&lt;链接rel=“样式表”href =“~ / lib / Select2 / select2。CSS”& gt;
&lt;script src=“~ / lib / Select2 / select2 .js”&gt;&lt;/脚本&gt;&lt;script src=“~ / lib / Select2 / select2_locale_zh-cn .js”& gt;

Select2加载数据

界面元素增加multiple=”multiple”属性,让select2支持多选操作。

&lt;div class=“群”&gt;&lt;标签class=“col-sm-2控制标签”=“>”;角色& lt;/标签&gt;&lt;div class=“col-sm-10”& gt;& lt选择;id=“角色”类=“格式控制”style=“padding: 0px”多为“多”&gt;&lt;/选择&gt;&lt;/ DIV &gt;&lt;/ div & gt;

调用select2()方法,创建select2界面元素;通过ajax请求返回角色列表json对象,将角色信息通过option标签绑定到select2控件。

功能lOAdroles(数据){ $(“#作用”)(。select2);期权=“美元。每个”;(data.roles,功能(我的项目){选项= & lt;期权价值= + + + item.id item.name + & gt“;”&lt;/选项”&gt;“} $(“#作用”)。Html(选项));}

select2支持多选,以及模糊筛选。界面效果如下:

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

3总结

在基本框架的基础上,功能实现并不复杂,到现在为止,四个主要的基本功能基本都已经实现了,里面会涉及一些细节性的问题,比如唯一性验证、密码加密等功能,没有做过多处理。接下来就是要实现根据登录用户动态加载对应的功能菜单,以及功能操作权限的判断。

文章从互联网整理而来,旨在传播scrum、软件项目管理、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解研发项目管理的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:

【网址】www.effapp.com

2018-02-21T23:50:43+08:002018-02-21 23:50:43|Categories: scrum项目管理|