修复在sqlite数据库下项目成员切换权限错误的BUG

This commit is contained in:
Minho 2017-06-02 09:27:13 +08:00
parent 186810cb4a
commit 8486bb3809
3 changed files with 29 additions and 4 deletions

View File

@ -15,6 +15,7 @@ import (
"github.com/lifei6671/godoc/models" "github.com/lifei6671/godoc/models"
"strings" "strings"
"github.com/lifei6671/godoc/commands/migrate" "github.com/lifei6671/godoc/commands/migrate"
"path/filepath"
) )
@ -43,6 +44,8 @@ func RegisterDataBase() {
} }
}else if adapter == "sqlite3" { }else if adapter == "sqlite3" {
database := beego.AppConfig.String("db_database") database := beego.AppConfig.String("db_database")
dbPath := filepath.Dir(database)
os.MkdirAll(dbPath,0777)
orm.RegisterDataBase("default", "sqlite3", database) orm.RegisterDataBase("default", "sqlite3", database)
} }

View File

@ -79,7 +79,11 @@ func (m *Relationship) UpdateRoleId(book_id,member_id, role_id int) (*Relationsh
} }
m.RoleId = role_id m.RoleId = role_id
_,err = o.InsertOrUpdate(m) if m.RelationshipId > 0 {
_,err = o.Update(m)
}else{
_,err = o.Insert(m)
}
return m,err return m,err
@ -176,10 +180,18 @@ func (m *Relationship) Transfer(book_id,founder_id,receive_id int) error {
o.Rollback() o.Rollback()
return err return err
} }
if _,err := o.InsertOrUpdate(receive);err != nil { if receive.RelationshipId > 0 {
o.Rollback() if _,err := o.Update(receive);err != nil {
return err o.Rollback()
return err
}
}else{
if _,err := o.Insert(receive);err != nil {
o.Rollback()
return err
}
} }
return o.Commit() return o.Commit()
} }

View File

@ -23,3 +23,13 @@ func AbsolutePath(p string) (string,error) {
} }
return s,nil return s,nil
} }
// FileExists reports whether the named file or directory exists.
func FileExists(name string) bool {
if _, err := os.Stat(name); err != nil {
if os.IsNotExist(err) {
return false
}
}
return true
}