settings.update_settings = Update Settings | settings.update_settings = Update Settings | ||||
settings.transfer = Transfer Ownership | settings.transfer = Transfer Ownership | ||||
settings.transfer_desc = Transfer this repo to another user or to an organization where you have admin rights. | settings.transfer_desc = Transfer this repo to another user or to an organization where you have admin rights. | ||||
settings.new_owner_has_same_repo = New owner already has a repository with same name. | |||||
settings.delete = Delete This Repository | settings.delete = Delete This Repository | ||||
settings.delete_desc = Once you delete a repository, there is no going back. Please be certain. | settings.delete_desc = Once you delete a repository, there is no going back. Please be certain. | ||||
settings.update_settings_success = Repository options has been successfully updated. | settings.update_settings_success = Repository options has been successfully updated. |
settings.update_settings = 更新仓库设置 | settings.update_settings = 更新仓库设置 | ||||
settings.transfer = 转移仓库所有权 | settings.transfer = 转移仓库所有权 | ||||
settings.transfer_desc = 您可以将仓库转移至您拥有管理员权限的帐户或组织。 | settings.transfer_desc = 您可以将仓库转移至您拥有管理员权限的帐户或组织。 | ||||
settings.new_owner_has_same_repo = 新的仓库拥有者已经存在同名仓库! | |||||
settings.delete = 删除本仓库 | settings.delete = 删除本仓库 | ||||
settings.delete_desc = 删除仓库操作不可逆转,请三思而后行。 | settings.delete_desc = 删除仓库操作不可逆转,请三思而后行。 | ||||
settings.update_settings_success = 仓库设置更新成功! | settings.update_settings_success = 仓库设置更新成功! |
"github.com/gogits/gogs/modules/setting" | "github.com/gogits/gogs/modules/setting" | ||||
) | ) | ||||
const APP_VER = "0.5.0.0910 Beta" | |||||
const APP_VER = "0.5.0.0912 Beta" | |||||
func init() { | func init() { | ||||
runtime.GOMAXPROCS(runtime.NumCPU()) | runtime.GOMAXPROCS(runtime.NumCPU()) |
} | } | ||||
// TransferOwnership transfers all corresponding setting from old user to new one. | // TransferOwnership transfers all corresponding setting from old user to new one. | ||||
func TransferOwnership(u *User, newOwner string, repo *Repository) (err error) { | |||||
func TransferOwnership(u *User, newOwner string, repo *Repository) error { | |||||
newUser, err := GetUserByName(newOwner) | newUser, err := GetUserByName(newOwner) | ||||
if err != nil { | if err != nil { | ||||
return err | return err | ||||
} | } | ||||
// Check if new owner has repository with same name. | |||||
has, err := IsRepositoryExist(u, repo.Name) | |||||
if err != nil { | |||||
return err | |||||
} else if has { | |||||
return ErrRepoAlreadyExist | |||||
} | |||||
sess := x.NewSession() | sess := x.NewSession() | ||||
defer sess.Close() | defer sess.Close() | ||||
if err = sess.Begin(); err != nil { | if err = sess.Begin(); err != nil { | ||||
} | } | ||||
} | } | ||||
if _, err = sess.Exec( | |||||
"UPDATE `user` SET num_repos = num_repos + 1 WHERE id = ?", u.Id); err != nil { | |||||
sess.Rollback() | |||||
return err | |||||
} | |||||
// Update owner team info and count. | // Update owner team info and count. | ||||
t.RepoIds += "$" + com.ToStr(repo.Id) + "|" | t.RepoIds += "$" + com.ToStr(repo.Id) + "|" | ||||
t.NumRepos++ | t.NumRepos++ | ||||
} | } | ||||
// GetRepositoryByName returns the repository by given name under user if exists. | // GetRepositoryByName returns the repository by given name under user if exists. | ||||
func GetRepositoryByName(userId int64, repoName string) (*Repository, error) { | |||||
func GetRepositoryByName(uid int64, repoName string) (*Repository, error) { | |||||
repo := &Repository{ | repo := &Repository{ | ||||
OwnerId: userId, | |||||
OwnerId: uid, | |||||
LowerName: strings.ToLower(repoName), | LowerName: strings.ToLower(repoName), | ||||
} | } | ||||
has, err := x.Get(repo) | has, err := x.Get(repo) |
ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_owner_name"), SETTINGS_OPTIONS, nil) | ctx.RenderWithErr(ctx.Tr("form.enterred_invalid_owner_name"), SETTINGS_OPTIONS, nil) | ||||
return | return | ||||
} else if err = models.TransferOwnership(ctx.Repo.Owner, newOwner, ctx.Repo.Repository); err != nil { | } else if err = models.TransferOwnership(ctx.Repo.Owner, newOwner, ctx.Repo.Repository); err != nil { | ||||
ctx.Handle(500, "TransferOwnership", err) | |||||
if err == models.ErrRepoAlreadyExist { | |||||
ctx.RenderWithErr(ctx.Tr("repo.settings.new_owner_has_same_repo"), SETTINGS_OPTIONS, nil) | |||||
} else { | |||||
ctx.Handle(500, "TransferOwnership", err) | |||||
} | |||||
return | return | ||||
} | } | ||||
log.Trace("Repository transfered: %s/%s -> %s", ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newOwner) | log.Trace("Repository transfered: %s/%s -> %s", ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newOwner) |
0.5.0.0910 Beta | |||||
0.5.0.0912 Beta |
</p> | </p> | ||||
<div class="{{if .ReadmeExist}}panel-content markdown{{end}} code-view"> | <div class="{{if .ReadmeExist}}panel-content markdown{{end}} code-view"> | ||||
{{if .ReadmeExist}} | {{if .ReadmeExist}} | ||||
{{.FileContent | Str2html}} | |||||
{{if .FileContent}}{{.FileContent | Str2html}}{{end}} | |||||
{{else if not .IsFileText}} | {{else if not .IsFileText}} | ||||
<div class="view-raw"> | <div class="view-raw"> | ||||
{{if .IsImageFile}} | {{if .IsImageFile}} |