Browse Source

Merge branch 'V20211018' into liuzx_dev

pull/518/head
lewis 3 years ago
parent
commit
3a89b2c36a
7 changed files with 66 additions and 7 deletions
  1. +1
    -0
      go.mod
  2. +25
    -2
      models/cloudbrain.go
  3. +2
    -1
      routers/repo/cloudbrain.go
  4. +2
    -2
      templates/repo/cloudbrain/index.tmpl
  5. +6
    -0
      templates/repo/issue/view.tmpl
  6. +15
    -1
      templates/repo/pulls/commits.tmpl
  7. +15
    -1
      templates/repo/pulls/files.tmpl

+ 1
- 0
go.mod View File

@@ -52,6 +52,7 @@ require (
github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28 github.com/gogs/chardet v0.0.0-20191104214054-4b6791f73a28
github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14 github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
github.com/golang/protobuf v1.4.1 // indirect github.com/golang/protobuf v1.4.1 // indirect
github.com/gomodule/redigo v2.0.0+incompatible
github.com/google/go-github/v24 v24.0.1 github.com/google/go-github/v24 v24.0.1
github.com/gorilla/context v1.1.1 github.com/gorilla/context v1.1.1
github.com/hashicorp/go-retryablehttp v0.6.6 // indirect github.com/hashicorp/go-retryablehttp v0.6.6 // indirect


+ 25
- 2
models/cloudbrain.go View File

@@ -5,11 +5,12 @@ import (
"fmt" "fmt"
"strings" "strings"
"time" "time"
"xorm.io/builder"
"xorm.io/xorm" "xorm.io/xorm"


"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/timeutil"
"xorm.io/builder"
) )


type CloudbrainStatus string type CloudbrainStatus string
@@ -59,6 +60,7 @@ type Cloudbrain struct {
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
DeletedAt time.Time `xorm:"deleted"` DeletedAt time.Time `xorm:"deleted"`
CanDebug bool `xorm:"-"` CanDebug bool `xorm:"-"`
CanDel bool `xorm:"-"`
Type int `xorm:"INDEX DEFAULT 0"` Type int `xorm:"INDEX DEFAULT 0"`


User *User `xorm:"-"` User *User `xorm:"-"`
@@ -67,7 +69,7 @@ type Cloudbrain struct {


type CloudbrainInfo struct { type CloudbrainInfo struct {
Cloudbrain `xorm:"extends"` Cloudbrain `xorm:"extends"`
User `xorm:"extends"`
User `xorm:"extends"`
} }


type CloudBrainLoginResult struct { type CloudBrainLoginResult struct {
@@ -669,3 +671,24 @@ func GetCloudbrainByName(jobName string) (*Cloudbrain, error) {
cb := &Cloudbrain{JobName: jobName} cb := &Cloudbrain{JobName: jobName}
return getRepoCloudBrain(cb) return getRepoCloudBrain(cb)
} }

func CanDelJob(isSigned bool, user *User, job *CloudbrainInfo) bool {
if !isSigned || job.Status != string(JobStopped) {
return false
}
repo, err := GetRepositoryByID(job.RepoID)
if err != nil {
log.Error("GetRepositoryByID failed:%v", err.Error())
return false
}
permission, _ := GetUserRepoPermission(repo, user)
if err != nil {
log.Error("GetUserRepoPermission failed:%v", err.Error())
return false
}

if user.ID == job.UserID || user.IsAdmin || permission.AccessMode >= AccessModeAdmin {
return true
}
return false
}

+ 2
- 1
routers/repo/cloudbrain.go View File

@@ -69,12 +69,13 @@ func CloudBrainIndex(ctx *context.Context) {


timestamp := time.Now().Unix() timestamp := time.Now().Unix()
for i, task := range ciTasks { for i, task := range ciTasks {
log.Info("", task.User.Name)
if task.Status == string(models.JobRunning) && (timestamp-int64(task.Cloudbrain.CreatedUnix) > 10) { if task.Status == string(models.JobRunning) && (timestamp-int64(task.Cloudbrain.CreatedUnix) > 10) {
ciTasks[i].CanDebug = true ciTasks[i].CanDebug = true
} else { } else {
ciTasks[i].CanDebug = false ciTasks[i].CanDebug = false
} }

ciTasks[i].CanDel = models.CanDelJob(ctx.IsSigned, ctx.User, task)
} }


pager := context.NewPagination(int(count), setting.UI.IssuePagingNum, page, 5) pager := context.NewPagination(int(count), setting.UI.IssuePagingNum, page, 5)


+ 2
- 2
templates/repo/cloudbrain/index.tmpl View File

@@ -353,9 +353,9 @@
</div> </div>
<!-- 删除镜像 --> <!-- 删除镜像 -->
<form class="ui compact buttons" id="delForm-{{.JobID}}" action="{{if ne .Status "STOPPED"}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/del{{end}}" method="post">
<form class="ui compact buttons" id="delForm-{{.JobID}}" action="{{if not .CanDel}}javascript:void(0){{else}}{{$.Link}}/{{.JobID}}/del{{end}}" method="post">
{{$.CsrfTokenHtml}} {{$.CsrfTokenHtml}}
<a class="ui compact {{if ne .Status "STOPPED"}}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;">
<a class="ui compact {{if not .CanDel}}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;">
删除 删除
</a> </a>
</form> </form>


+ 6
- 0
templates/repo/issue/view.tmpl View File

@@ -10,6 +10,12 @@
<div class="divider"> / </div> <div class="divider"> / </div>
<div class="action section">{{.i18n.Tr "repo.issues_detail"}}</div> <div class="action section">{{.i18n.Tr "repo.issues_detail"}}</div>
</div> </div>
{{else}}
<div class="ui large breadcrumb">
<a class="section" href="{{.RepoLink}}/issues">{{.i18n.Tr "repo.pulls"}}</a>
<div class="divider"> / </div>
<div class="action section">{{.i18n.Tr "repo.issues_detail"}}</div>
</div>
{{end}} {{end}}
</div> </div>
{{if not .Repository.IsArchived}} {{if not .Repository.IsArchived}}


+ 15
- 1
templates/repo/pulls/commits.tmpl View File

@@ -2,11 +2,25 @@
<div class="repository view issue pull commits"> <div class="repository view issue pull commits">
{{template "repo/header" .}} {{template "repo/header" .}}
<div class="ui container"> <div class="ui container">
<div class="navbar">
<!-- <div class="navbar">
{{template "repo/issue/navbar" .}} {{template "repo/issue/navbar" .}}
<div class="ui right"> <div class="ui right">
<a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a> <a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a>
</div> </div>
</div> -->
<div class="ui two column stackable grid">
<div class="column" style="display: flex;align-items: center;">
<div class="ui large breadcrumb">
<a class="section" href="{{.RepoLink}}/pulls">{{.i18n.Tr "repo.pulls"}}</a>
<div class="divider"> / </div>
<div class="action section">{{.i18n.Tr "repo.issues_detail"}}</div>
</div>
</div>
<div class="column right aligned">
{{template "repo/issue/navbar" .}}
<a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a>
</div>
</div> </div>
<div class="ui divider"></div> <div class="ui divider"></div>
{{template "repo/issue/view_title" .}} {{template "repo/issue/view_title" .}}


+ 15
- 1
templates/repo/pulls/files.tmpl View File

@@ -2,11 +2,25 @@
<div class="repository view issue pull files diff"> <div class="repository view issue pull files diff">
{{template "repo/header" .}} {{template "repo/header" .}}
<div class="ui container {{if .IsSplitStyle}}fluid padded{{end}}"> <div class="ui container {{if .IsSplitStyle}}fluid padded{{end}}">
<div class="navbar">
<!-- <div class="navbar">
{{template "repo/issue/navbar" .}} {{template "repo/issue/navbar" .}}
<div class="ui right"> <div class="ui right">
<a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a> <a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a>
</div> </div>
</div> -->
<div class="ui two column stackable grid">
<div class="column" style="display: flex;align-items: center;">
<div class="ui large breadcrumb">
<a class="section" href="{{.RepoLink}}/pulls">{{.i18n.Tr "repo.pulls"}}</a>
<div class="divider"> / </div>
<div class="action section">{{.i18n.Tr "repo.issues_detail"}}</div>
</div>
</div>
<div class="column right aligned">
{{template "repo/issue/navbar" .}}
<a class="ui green button {{if not .PullRequestCtx.Allowed}}disabled{{end}}" href="{{.RepoLink}}/compare/{{.BranchName | EscapePound}}...{{.PullRequestCtx.HeadInfo | EscapePound}}">{{.i18n.Tr "repo.pulls.new"}}</a>
</div>
</div> </div>
<div class="ui divider"></div> <div class="ui divider"></div>
{{template "repo/issue/view_title" .}} {{template "repo/issue/view_title" .}}


Loading…
Cancel
Save