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 @@