diff --git a/History.txt b/History.txt index 75cdcb63..0eb7f4bc 100644 --- a/History.txt +++ b/History.txt @@ -1,11 +1,13 @@ EngineerCMS revision history -7, EngineerCMS 1.01 (Apr 30, 2018) +8, EngineerCMS 1.03 (May 3, 2018) + *) Fixed bug of role permission +7, EngineerCMS 1.02 (Apr 30, 2018) *) Fixed bug of onlyoffice permission 6, EngineerCMS 1.01 (Apr 25, 2018) +) Add project permission query&update -5, EngineerCMS 1.01 (Feb 20, 2018) +5, EngineerCMS 1.0 (Feb 20, 2018) +) Add ONLYOFFICE Document Server -4, EngineerCMS 0.92 (Feb 10, 2017) +4, EngineerCMS 0.93 (Feb 10, 2017) +) Add project role +) Add cms service *) Fixed bug of product editor diff --git a/controllers/default.go b/controllers/default.go index 95b76f85..397a345b 100644 --- a/controllers/default.go +++ b/controllers/default.go @@ -299,10 +299,10 @@ func (c *MainController) Test() { beego.Error(err) } if matched == true { - beego.Info("移动端~") + // beego.Info("移动端~") c.TplName = "test1.tpl" } else { - beego.Info("电脑端!") + // beego.Info("电脑端!") c.TplName = "test.tpl" } // var u = navigator.userAgent, app = navigator.appVersion; diff --git a/controllers/login.go b/controllers/login.go index 3efc61dc..959244b2 100644 --- a/controllers/login.go +++ b/controllers/login.go @@ -51,7 +51,18 @@ func (c *LoginController) Get() { // c.Ctx.Input.CruSession.Delete("gosessionid")这句与上面一句重复 // c.Ctx.Input.CruSession.Flush() // beego.GlobalSessions.SessionDestroy(c.Ctx.ResponseWriter, c.Ctx.Request) - c.DelSession("uname") + v := c.GetSession("uname") + // islogin := false + if v != nil { + //删除指定的session + c.DelSession("uname") + //销毁全部的session + c.DestroySession() + // islogin = true + + //beego.Info("当前的session:") + //beego.Info(c.CruSession) + } // sess.Flush()//这个不灵 c.Redirect("/", 301) return diff --git a/controllers/onlyoffice.go b/controllers/onlyoffice.go index e0fda753..6fb7786d 100644 --- a/controllers/onlyoffice.go +++ b/controllers/onlyoffice.go @@ -204,10 +204,10 @@ func (c *OnlyController) Get() { beego.Error(err) } if matched == true { - beego.Info("移动端~") + // beego.Info("移动端~") c.TplName = "onlyoffice/docs.tpl" } else { - beego.Info("电脑端!") + // beego.Info("电脑端!") c.TplName = "onlyoffice/docs.tpl" } // c.Data["Url"] = c.Ctx.Request.URL.String() @@ -1112,7 +1112,7 @@ func (c *OnlyController) Addpermission() { if err != nil { beego.Error(err) } - //循环删除成果 + //根据成果id取得所有附件——这里只取第一个 attachments, err := models.GetOnlyAttachments(idNum) if err != nil { diff --git a/controllers/record.go b/controllers/record.go index ac70f160..3279ece3 100644 --- a/controllers/record.go +++ b/controllers/record.go @@ -476,7 +476,7 @@ func SubStrings(filenameWithSuffix string) (substr1, substr2 string) { re, _ := regexp.Compile("[^a-zA-Z0-9-~]") //2016-1-11日拟修改DZ122D.5-10-15~15.dwg loc := re.FindStringIndex(filenameOnly) // fmt.Println(str[loc[0]:loc[1]]) - beego.Info(loc[0]) + // beego.Info(loc[0]) if loc != nil { end = loc[0] fulleFilename1 = SubString(filenameOnly, 0, end) diff --git a/controllers/roleControllers.go b/controllers/roleControllers.go index 26461551..f39c2c61 100644 --- a/controllers/roleControllers.go +++ b/controllers/roleControllers.go @@ -431,15 +431,36 @@ func (c *RoleController) UserRole() { //给角色赋项目目录的权限 //先删除角色对于这个项目的所有权限 func (c *RoleController) RolePermission() { + var success bool + var nodeidint int + var projurl, action, suf1, suf string + var err error roleids := c.GetString("roleids") rolearray := strings.Split(roleids, ",") // beego.Info(rolearray) permissionids := c.GetString("permissionids") permissionarray := strings.Split(permissionids, ",") + switch permissionarray[0] { + case "添加成果": + action = "POST" + case "编辑成果": + action = "PUT" + case "删除成果": + action = "DELETE" + case "读取成果": + action = "GET" + } // beego.Info(permissionarray) sufids := c.GetString("sufids") sufarray := strings.Split(sufids, ",") - + switch sufids { + case "任意": + suf = ".*" + case "": + suf = "(?i:PDF)" + case "PDF": + suf = "(?i:PDF)" + } treeids := c.GetString("treeids") //项目目录id,25001,25002 treearray := strings.Split(treeids, ",") // beego.Info(treearray) @@ -455,10 +476,6 @@ func (c *RoleController) RolePermission() { // beego.Error(err) // } - var success bool - var nodeidint int - var projurl, action, suf1, suf string - var err error //取出项目目录的顶级 var nodesid, nodesids []string // beego.Info(len(treenodearray)) @@ -472,16 +489,25 @@ func (c *RoleController) RolePermission() { } // beego.Info(nodesids) - //删除这些角色、项目id的全部权限 + //删除这些角色、项目id、权限的全部权限 for _, v1 := range rolearray { // var paths []beegoormadapter.CasbinRule o := orm.NewOrm() qs := o.QueryTable("casbin_rule") - _, err := qs.Filter("PType", "p").Filter("v0", "role_"+v1).Filter("v1__contains", "/"+projectid+"/").Delete() - if err != nil { - beego.Error(err) + if action == "GET" { + _, err := qs.Filter("PType", "p").Filter("v0", "role_"+v1).Filter("v1__contains", "/"+projectid+"/").Filter("v2", action).Filter("v3", suf).Delete() + if err != nil { + beego.Error(err) + } + } else { + _, err := qs.Filter("PType", "p").Filter("v0", "role_"+v1).Filter("v1__contains", "/"+projectid+"/").Filter("v2", action).Delete() + if err != nil { + beego.Error(err) + } } } + + e.LoadPolicy() //重载权限 // e.RemoveFilteredPolicy(1, "/onlyoffice/"+strconv.FormatInt(attachments[0].Id, 10)) for _, v1 := range rolearray { @@ -504,7 +530,7 @@ func (c *RoleController) RolePermission() { suf = ".*" break } else if v4 == "" { //用户没展开则读取不到table4的select - suf = "(?i:pdf)" + suf = "(?i:PDF)" break } else { suf1 = "(?i:" + v4 + ")" @@ -538,7 +564,7 @@ func (c *RoleController) RolePermission() { } else { projurl = "/" + strings.Replace(proj.ParentIdPath, "-", "/", -1) + "/" + treearray[nodeidint] + "/*" } - beego.Info(v1) + // beego.Info(v1) // beego.Info(projurl) // beego.Info(action) // beego.Info(suf) @@ -551,7 +577,7 @@ func (c *RoleController) RolePermission() { } } - e.LoadPolicy() //重载权限 + // e.LoadPolicy() //重载权限 if success == true { c.Data["json"] = "ok" @@ -596,6 +622,18 @@ func (c *RoleController) GetRolePermission() { roleid := c.GetString("roleid") //角色id action := c.GetString("action") projectid := c.GetString("projectid") + sufids := c.GetString("sufids") //扩展名 + // beego.Info(sufids) + var suf string + switch sufids { + case "任意": + suf = ".*" + case "": + suf = "(?i:PDF)" + case "PDF": + suf = "(?i:PDF)" + } + // beego.Info(suf) // beego.Info(roleid) // beego.Info(action) // beego.Info(projectid) @@ -615,9 +653,17 @@ func (c *RoleController) GetRolePermission() { var paths []beegoormadapter.CasbinRule o := orm.NewOrm() qs := o.QueryTable("casbin_rule") - _, err := qs.Filter("PType", "p").Filter("v0", "role_"+roleid).Filter("v1__contains", "/"+projectid+"/").Filter("v2", action).All(&paths) - if err != nil { - beego.Error(err) + if action == "GET" || action == "" { + _, err := qs.Filter("PType", "p").Filter("v0", "role_"+roleid).Filter("v1__contains", "/"+projectid+"/").Filter("v2", "GET").Filter("v3", suf).All(&paths) + if err != nil { + beego.Error(err) + } + // beego.Info(paths) + } else { + _, err := qs.Filter("PType", "p").Filter("v0", "role_"+roleid).Filter("v1__contains", "/"+projectid+"/").Filter("v2", action).All(&paths) + if err != nil { + beego.Error(err) + } } // beego.Info(paths) var projids []string diff --git a/controllers/ueditor.go b/controllers/ueditor.go index 4600b920..e03d5125 100644 --- a/controllers/ueditor.go +++ b/controllers/ueditor.go @@ -137,7 +137,7 @@ func (c *UeditorController) ControllerUE() { default: //解析表单 pid := c.Input().Get("pid") - beego.Info(pid) + // beego.Info(pid) //pid转成64为 pidNum, err := strconv.ParseInt(pid, 10, 64) if err != nil { @@ -148,7 +148,7 @@ func (c *UeditorController) ControllerUE() { if err != nil { beego.Error(err) } - beego.Info(DiskDirectory) + // beego.Info(DiskDirectory) //获取上传的文件 _, h, err := c.GetFile("upfile") if err != nil { @@ -315,7 +315,7 @@ func (c *UeditorController) ControllerUE() { c.ServeJSON() file, header, err := c.GetFile("source") // r.FormFile("upfile") - beego.Info(header.Filename) + // beego.Info(header.Filename) if err != nil { panic(err) } diff --git a/database/engineer.db b/database/engineer.db index f5b37073..e0b03c37 100644 Binary files a/database/engineer.db and b/database/engineer.db differ diff --git "a/document/\346\226\275\345\267\245\345\210\206\351\231\242\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" "b/document/\346\226\275\345\267\245\345\210\206\351\231\242\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" deleted file mode 100644 index 66f7487c..00000000 Binary files "a/document/\346\226\275\345\267\245\345\210\206\351\231\242\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" and /dev/null differ diff --git "a/document/\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" "b/document/\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" new file mode 100644 index 00000000..afc51f87 Binary files /dev/null and "b/document/\347\224\250\346\210\267\346\225\260\346\215\256.xlsx" differ diff --git a/static/img/EngineerCMS onlyoffice.png b/static/img/EngineerCMS onlyoffice.png new file mode 100644 index 00000000..c1544a41 Binary files /dev/null and b/static/img/EngineerCMS onlyoffice.png differ diff --git a/static/img/oo doc role permission.png b/static/img/oo doc role permission.png new file mode 100644 index 00000000..93630cba Binary files /dev/null and b/static/img/oo doc role permission.png differ diff --git a/static/img/oo doc user permission.png b/static/img/oo doc user permission.png new file mode 100644 index 00000000..bb29cbb4 Binary files /dev/null and b/static/img/oo doc user permission.png differ diff --git "a/static/img/\344\270\252\344\272\272\346\227\245\345\216\206\344\272\213\344\273\266.png" "b/static/img/\344\270\252\344\272\272\346\227\245\345\216\206\344\272\213\344\273\266.png" new file mode 100644 index 00000000..a6d06fd4 Binary files /dev/null and "b/static/img/\344\270\252\344\272\272\346\227\245\345\216\206\344\272\213\344\273\266.png" differ diff --git "a/static/img/\347\224\250\346\210\267-\350\247\222\350\211\262.png" "b/static/img/\347\224\250\346\210\267-\350\247\222\350\211\262.png" new file mode 100644 index 00000000..d9d7dee1 Binary files /dev/null and "b/static/img/\347\224\250\346\210\267-\350\247\222\350\211\262.png" differ diff --git "a/static/img/\347\273\204\347\273\207\347\273\223\346\236\204.PNG" "b/static/img/\347\273\204\347\273\207\347\273\223\346\236\204.PNG" new file mode 100644 index 00000000..93b63517 Binary files /dev/null and "b/static/img/\347\273\204\347\273\207\347\273\223\346\236\204.PNG" differ diff --git "a/static/img/\347\274\226\350\276\221\347\233\256\345\275\225.PNG" "b/static/img/\347\274\226\350\276\221\347\233\256\345\275\225.PNG" new file mode 100644 index 00000000..f5d3092c Binary files /dev/null and "b/static/img/\347\274\226\350\276\221\347\233\256\345\275\225.PNG" differ diff --git "a/static/img/\350\247\222\350\211\262-\346\235\203\351\231\220.png" "b/static/img/\350\247\222\350\211\262-\346\235\203\351\231\220.png" new file mode 100644 index 00000000..c7aeffab Binary files /dev/null and "b/static/img/\350\247\222\350\211\262-\346\235\203\351\231\220.png" differ diff --git "a/static/img/\351\241\271\347\233\256\345\210\206\347\272\247\347\233\256\345\275\225.png" "b/static/img/\351\241\271\347\233\256\345\210\206\347\272\247\347\233\256\345\275\225.png" new file mode 100644 index 00000000..90028d78 Binary files /dev/null and "b/static/img/\351\241\271\347\233\256\345\210\206\347\272\247\347\233\256\345\275\225.png" differ diff --git a/static/js/bootstrap-table-zh-CN.min.js b/static/js/bootstrap-table-zh-CN.min.js index 3f41c1be..81e27db8 100644 --- a/static/js/bootstrap-table-zh-CN.min.js +++ b/static/js/bootstrap-table-zh-CN.min.js @@ -1,7 +1,7 @@ /* -* bootstrap-table - v1.11.0 - 2016-07-02 +* bootstrap-table - v1.12.1 - 2018-03-12 * https://github.com/wenzhixin/bootstrap-table -* Copyright (c) 2016 zhixin wen +* Copyright (c) 2018 zhixin wen * Licensed MIT License */ !function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery); \ No newline at end of file diff --git a/views/admin_calendar.tpl b/views/admin_calendar.tpl index 598a81af..05e1ca16 100644 --- a/views/admin_calendar.tpl +++ b/views/admin_calendar.tpl @@ -11,7 +11,7 @@ - + @@ -22,6 +22,7 @@