MCPcopy Index your code
hub / github.com/TruthHun/BookStack / FindByIdentify

Method FindByIdentify

models/book_result.go:62–124  ·  view source on GitHub ↗

根据书籍标识查询书籍以及指定用户权限的信息.

(identify string, memberId int)

Source from the content-addressed store, hash-verified

60
61// 根据书籍标识查询书籍以及指定用户权限的信息.
62func (m *BookResult) FindByIdentify(identify string, memberId int) (result *BookResult, err error) {
63 if identify == "" || memberId <= 0 {
64 return result, ErrInvalidParameter
65 }
66 o := orm.NewOrm()
67
68 book := NewBook()
69
70 err = o.QueryTable(book.TableNameWithPrefix()).Filter("identify", identify).One(book)
71 if err != nil {
72 return
73 }
74
75 json.Unmarshal([]byte(book.NavJSON), &book.Navs)
76
77 relationship := NewRelationship()
78
79 err = o.QueryTable(relationship.TableNameWithPrefix()).Filter("book_id", book.BookId).Filter("member_id", memberId).One(relationship)
80 if err != nil {
81 return
82 }
83
84 var relationship2 Relationship
85
86 err = o.QueryTable(relationship.TableNameWithPrefix()).Filter("book_id", book.BookId).Filter("role_id", conf.BookFounder).One(&relationship2)
87 if err != nil {
88 logs.Error("根据书籍标识查询书籍以及指定用户权限的信息 => ", err)
89 return result, ErrPermissionDenied
90 }
91
92 member, err := NewMember().Find(relationship2.MemberId)
93 if err != nil {
94 return result, err
95 }
96
97 result = book.ToBookResult()
98 result.CreateName = member.Account
99 result.MemberId = relationship.MemberId
100 result.RoleId = relationship.RoleId
101 result.RelationshipId = relationship.RelationshipId
102 result.Navs = book.Navs
103
104 switch result.RoleId {
105 case conf.BookFounder:
106 result.RoleName = "创始人"
107 case conf.BookAdmin:
108 result.RoleName = "管理员"
109 case conf.BookEditor:
110 result.RoleName = "编辑者"
111 case conf.BookObserver:
112 result.RoleName = "观察者"
113 }
114
115 doc := NewDocument()
116
117 err = o.QueryTable(doc.TableNameWithPrefix()).Filter("book_id", book.BookId).OrderBy("modify_time").One(doc)
118 if err == nil {
119 member2 := NewMember()

Callers

nothing calls this directly

Calls 10

TableNameWithPrefixMethod · 0.95
TableNameWithPrefixMethod · 0.95
ToBookResultMethod · 0.95
TableNameWithPrefixMethod · 0.95
FindMethod · 0.95
NewBookFunction · 0.85
NewRelationshipFunction · 0.85
NewMemberFunction · 0.85
NewDocumentFunction · 0.85
FindMethod · 0.45

Tested by

no test coverage detected