mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-25 17:42:25 +01:00
加入权限管理
This commit is contained in:
@@ -33,6 +33,7 @@ type Spider struct {
|
||||
Remark string `json:"remark" bson:"remark"` // 备注
|
||||
Src string `json:"src" bson:"src"` // 源码位置
|
||||
ProjectId bson.ObjectId `json:"project_id" bson:"project_id"` // 项目ID
|
||||
IsPublic bool `json:"is_public" bson:"is_public"` // 是否公开
|
||||
|
||||
// 自定义爬虫
|
||||
Cmd string `json:"cmd" bson:"cmd"` // 执行命令
|
||||
@@ -63,6 +64,7 @@ type Spider struct {
|
||||
LastStatus string `json:"last_status"` // 最后执行状态
|
||||
Config entity.ConfigSpiderData `json:"config"` // 可配置爬虫配置
|
||||
LatestTasks []Task `json:"latest_tasks"` // 最近任务列表
|
||||
Username string `json:"username""`
|
||||
|
||||
// 时间
|
||||
UserId bson.ObjectId `json:"user_id" bson:"user_id"`
|
||||
@@ -83,6 +85,7 @@ func (spider *Spider) Save() error {
|
||||
}
|
||||
|
||||
if err := c.UpdateId(spider.Id, spider); err != nil {
|
||||
log.Errorf(err.Error())
|
||||
debug.PrintStack()
|
||||
return err
|
||||
}
|
||||
@@ -182,10 +185,22 @@ func GetSpiderList(filter interface{}, skip int, limit int, sortStr string) ([]S
|
||||
continue
|
||||
}
|
||||
|
||||
// 获取用户
|
||||
var user User
|
||||
if spider.UserId.Valid() {
|
||||
user, err = GetUser(spider.UserId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
debug.PrintStack()
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
// 赋值
|
||||
spiders[i].LastRunTs = task.CreateTs
|
||||
spiders[i].LastStatus = task.Status
|
||||
spiders[i].LatestTasks = latestTasks
|
||||
spiders[i].Username = user.Username
|
||||
}
|
||||
|
||||
count, _ := c.Find(filter).Count()
|
||||
@@ -221,13 +236,21 @@ func GetSpiderByName(name string) Spider {
|
||||
s, c := database.GetCol("spiders")
|
||||
defer s.Close()
|
||||
|
||||
var result Spider
|
||||
if err := c.Find(bson.M{"name": name}).One(&result); err != nil && err != mgo.ErrNotFound {
|
||||
var spider Spider
|
||||
if err := c.Find(bson.M{"name": name}).One(&spider); err != nil && err != mgo.ErrNotFound {
|
||||
log.Errorf("get spider error: %s, spider_name: %s", err.Error(), name)
|
||||
//debug.PrintStack()
|
||||
return result
|
||||
return spider
|
||||
}
|
||||
return result
|
||||
|
||||
// 获取用户
|
||||
var user User
|
||||
if spider.UserId.Valid() {
|
||||
user, _ = GetUser(spider.UserId)
|
||||
}
|
||||
spider.Username = user.Username
|
||||
|
||||
return spider
|
||||
}
|
||||
|
||||
// 获取爬虫(根据ID)
|
||||
@@ -253,6 +276,14 @@ func GetSpider(id bson.ObjectId) (Spider, error) {
|
||||
}
|
||||
spider.Config = config
|
||||
}
|
||||
|
||||
// 获取用户名称
|
||||
var user User
|
||||
if spider.UserId.Valid() {
|
||||
user, _ = GetUser(spider.UserId)
|
||||
}
|
||||
spider.Username = user.Username
|
||||
|
||||
return spider, nil
|
||||
}
|
||||
|
||||
@@ -324,11 +355,11 @@ func RemoveAllSpider() error {
|
||||
}
|
||||
|
||||
// 获取爬虫总数
|
||||
func GetSpiderCount() (int, error) {
|
||||
func GetSpiderCount(filter interface{}) (int, error) {
|
||||
s, c := database.GetCol("spiders")
|
||||
defer s.Close()
|
||||
|
||||
count, err := c.Count()
|
||||
count, err := c.Find(filter).Count()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user