You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
858 B

package api
4 years ago
import (
"github.com/imdotdev/im.dev/server/internal/org"
"github.com/imdotdev/im.dev/server/internal/story"
"github.com/imdotdev/im.dev/server/pkg/log"
"github.com/imdotdev/im.dev/server/pkg/models"
)
var logger = log.RootLogger.New("logger", "api")
4 years ago
/* 鉴权、数据合法性验证都在api模块进行处理 */
4 years ago
func isStoryCreator(userID string, storyID string) bool {
if models.GetIDType(storyID) == models.IDTypeSeries {
// 如果是series需要判断它属于组织还是个人,两者的权限验证不同
story, _ := story.GetStory(storyID, "")
if story.OwnerID != "" {
if !org.IsOrgAdmin(userID, story.OwnerID) {
return false
}
} else {
if !models.IsStoryCreator(userID, storyID) {
return false
}
}
} else {
if !models.IsStoryCreator(userID, storyID) {
return false
}
}
return true
}