]> source.dussan.org Git - gitea.git/commitdiff
modules/base: add RenderCommitMessage with XSS-safe and special links
authorUnknwon <joe2010xtmf@163.com>
Fri, 30 Jan 2015 23:05:20 +0000 (18:05 -0500)
committerUnknwon <joe2010xtmf@163.com>
Fri, 30 Jan 2015 23:05:20 +0000 (18:05 -0500)
- update russian locale

12 files changed:
README.md
README_ZH.md
conf/locale/locale_ru-RU.ini
gogs.go
modules/base/markdown.go
modules/base/template.go
routers/repo/commit.go
routers/repo/view.go
templates/.VERSION
templates/repo/commits_table.tmpl
templates/repo/diff.tmpl
templates/repo/view_list.tmpl

index ebaa12b7f11d3d1efa888cdfdad847046db3ba11..f85e7354faa5492f152abcd58a0f8c5d288a1179 100644 (file)
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.
 
 ![Demo](http://gogs.qiniudn.com/gogs_demo.gif)
 
-##### Current version: 0.5.11 Beta
+##### Current version: 0.5.12 Beta
 
 ### NOTICES
 
index 30b9e778cac5a056dac0728b3c8ea34d8e4c6132..a67799ac3010ff7a521bd00020393a5bfc87ec38 100644 (file)
@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。
 
 ![Demo](http://gogs.qiniudn.com/gogs_demo.gif)
 
-##### 当前版本:0.5.11 Beta
+##### 当前版本:0.5.12 Beta
 
 ## 开发目的
 
index bcc71f8db8732bca4b4cf4b27d072e57dc24bd3e..b0da5c550f3cedc32dd7cf39eea32695b96a382f 100755 (executable)
@@ -164,7 +164,7 @@ unable_verify_ssh_key=Gogs не может проверить ваш SSH-клю
 auth_failed=Ошибка аутентификации: %v\r
 \r
 still_own_repo=На вашем аккаунте все еще остается как минимум один репозиторий, сначала вам нужно удалить или передать его.\r
-still_has_org=Your account still have membership of organization, you have to left or delete them first.\r
+still_has_org=Вы находитесь в организации, сперва Вам необходимо покинуть ее или удалить.\r
 org_still_own_repo=Данная организация все еще является владельцем репозиториев, необходимо удалить или переместить их в начале.\r
 \r
 still_own_user=Эта проверка подлинности по-прежнему используется некоторыми пользователями, вы должны переместить их и затем снова удалить.\r
@@ -631,22 +631,22 @@ config.db_path_helper=(for "sqlite3" only)
 config.service_config=Service Configuration\r
 config.register_email_confirm=Require E-mail Confirmation\r
 config.disable_register=Отключить регистрацию\r
-config.require_sign_in_view=Require Sign In View\r
-config.mail_notify=Mail Notification\r
-config.enable_cache_avatar=Enable Cache Avatar\r
+config.require_sign_in_view=Для просмотра необходима авторизация\r
+config.mail_notify=Почтовые уведомления\r
+config.enable_cache_avatar=Кешировать аватар\r
 config.active_code_lives=Active Code Lives\r
 config.reset_password_code_lives=Reset Password Code Lives\r
 config.webhook_config=Настройка автоматического обновления репозиции\r
-config.task_interval=Task Interval\r
-config.deliver_timeout=Deliver Timeout\r
-config.mailer_config=Mailer Configuration\r
+config.task_interval=Интервал задания\r
+config.deliver_timeout=Задержка доставки\r
+config.mailer_config=Настройки почты\r
 config.mailer_enabled=Включено\r
 config.mailer_name=Имя\r
 config.mailer_host=Сервер\r
 config.mailer_user=Пользователь\r
 config.oauth_config=Конфигурация OAuth\r
 config.oauth_enabled=Включено\r
-config.cache_config=Cache Configuration\r
+config.cache_config=Настройки кеша\r
 config.cache_adapter=Cache Adapter\r
 config.cache_interval=Cache Interval\r
 config.cache_conn=Cache Connection\r
@@ -674,7 +674,7 @@ monitor.execute_times=Execute Times
 monitor.process=Запущенные процессы\r
 monitor.desc=Описание\r
 monitor.start=Start Time\r
-monitor.execute_time=Execution Time\r
+monitor.execute_time=Время выполнения\r
 \r
 notices.system_notice_list=Система уведомлений\r
 notices.type=Тип\r
diff --git a/gogs.go b/gogs.go
index 5711452d7cbbb34632d61baae0e98fd28b1a83dd..a3c749cea33006f300401d59efe713e28c1bd148 100644 (file)
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
        "github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.5.12.0120 Beta"
+const APP_VER = "0.5.12.0130 Beta"
 
 func init() {
        runtime.GOMAXPROCS(runtime.NumCPU())
index b2f94c480b1e9bcd7f720d370aaa6e15c3594344..2cd3617a8f751e3342fe2368ad97fe9ab4350010 100644 (file)
@@ -103,7 +103,7 @@ var (
        MentionPattern     = regexp.MustCompile(`@[0-9a-zA-Z_]{1,}`)
        commitPattern      = regexp.MustCompile(`(\s|^)https?.*commit/[0-9a-zA-Z]+(#+[0-9a-zA-Z-]*)?`)
        issueFullPattern   = regexp.MustCompile(`(\s|^)https?.*issues/[0-9]+(#+[0-9a-zA-Z-]*)?`)
-       issueIndexPattern  = regexp.MustCompile(`#[0-9]+`)
+       issueIndexPattern  = regexp.MustCompile(`( |^)#[0-9]+`)
        sha1CurrentPattern = regexp.MustCompile(`\b[0-9a-f]{40}\b`)
 )
 
index 829999d1c9f047b3052314c2dfdc538d84daf1e5..34caa4552b40ad9e784bd713290b1f91b90236fb 100644 (file)
@@ -90,6 +90,11 @@ func ToUtf8(content string) string {
        return res
 }
 
+// RenderCommitMessage renders commit message with XSS-safe and special links.
+func RenderCommitMessage(msg, urlPrefix string) template.HTML {
+       return template.HTML(string(RenderIssueIndexPattern([]byte(template.HTMLEscapeString(msg)), urlPrefix)))
+}
+
 var mailDomains = map[string]string{
        "gmail.com": "gmail.com",
 }
@@ -163,6 +168,7 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{
        "EscapePound": func(str string) string {
                return strings.Replace(str, "#", "%23", -1)
        },
+       "RenderCommitMessage": RenderCommitMessage,
 }
 
 type Actioner interface {
index 4571b24f2a5ebba4459c6eef2d7c4e1e8d17d9dc..e92ec8c88c8c0b27956306cb0563bca41fa87796 100644 (file)
@@ -37,7 +37,7 @@ func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List {
        newCommits := list.New()
        for e := oldCommits.Front(); e != nil; e = e.Next() {
                c := e.Value.(*git.Commit)
-               c.CommitMessage = string(base.RenderIssueIndexPattern([]byte(c.CommitMessage), repoLink))
+               c.CommitMessage = c.CommitMessage
                newCommits.PushBack(c)
        }
        return newCommits
@@ -206,7 +206,7 @@ func Diff(ctx *middleware.Context) {
        commitId := ctx.Repo.CommitId
 
        commit := ctx.Repo.Commit
-       commit.CommitMessage = string(base.RenderIssueIndexPattern([]byte(commit.CommitMessage), ctx.Repo.RepoLink))
+       commit.CommitMessage = commit.CommitMessage
        diff, err := models.GetDiffCommit(models.RepoPath(userName, repoName),
                commitId, setting.Git.MaxGitDiffLines)
        if err != nil {
index 606a0da637a71f56c36dcc8d57b464dd9a55f816..cb689df6a0ad8b0c854724aa55753a8e5fa76daf 100644 (file)
@@ -156,9 +156,9 @@ func Home(ctx *middleware.Context) {
                for _, f := range files {
                        switch c := f[1].(type) {
                        case *git.Commit:
-                               c.CommitMessage = string(base.RenderIssueIndexPattern([]byte(c.CommitMessage), ctx.Repo.RepoLink))
+                               c.CommitMessage = c.CommitMessage
                        case *git.SubModuleFile:
-                               c.CommitMessage = string(base.RenderIssueIndexPattern([]byte(c.CommitMessage), ctx.Repo.RepoLink))
+                               c.CommitMessage = c.CommitMessage
                        }
                }
                ctx.Data["Files"] = files
index 36f8bef5b7f71c2f5dfc490c6bbfe6b2480d73b2..1674af9a21e508ad0341450cd5d3000e50f0567d 100644 (file)
@@ -1 +1 @@
-0.5.12.0120 Beta
\ No newline at end of file
+0.5.12.0130 Beta
\ No newline at end of file
index bd3777b46e52846ea93db303bbc08a5a06673563..4c8141ab177d68197033bfbd398288d8435c98e1 100644 (file)
@@ -32,7 +32,7 @@
                     {{end}}
                 </td>
                 <td class="sha"><a rel="nofollow" class="label label-green" href="{{AppSubUrl}}/{{$username}}/{{$reponame}}/commit/{{.Id}} ">{{SubStr .Id.String 0 10}} </a></td>
-                <td class="message"><span class="text-truncate">{{Str2html .Summary}}</span></td>
+                <td class="message"><span class="text-truncate">{{RenderCommitMessage .Summary $.RepoLink}}</span></td>
                 <td class="date">{{TimeSince .Author.When $.Lang}}</td>
             </tr>
             {{end}}
index 225175e8d182edad7ef0eda0ac9394f327bb262f..8045351600e0fadd37d3b04aa6ddc462f24008d7 100644 (file)
@@ -17,7 +17,7 @@
         <div class="panel panel-info panel-radius diff-head-box">
             <div class="panel-header">
                 <a class="pull-right btn btn-blue btn-header btn-medium btn-radius" rel="nofollow" href="{{.SourcePath}}">{{.i18n.Tr "repo.diff.browse_source"}}</a>
-                <h4 class="commit-message">{{Str2html .Commit.Message}}</h4>
+                <h4 class="commit-message">{{RenderCommitMessage .Commit.Message $.RepoLink}}</h4>
             </div>
             <div class="panel-body">
                 <span class="pull-right">
index fed91effa7743401dddf87da5bafb19a86b51570..7bb9ffef7fe8de9262c649fdcdf39396cc7501b8 100644 (file)
@@ -53,7 +53,7 @@
                   <a rel="nofollow" class="label label-green" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.Id}} ">{{SubStr $commit.Id.String 0 10}} </a>
                 </td>
                 <td class="message">
-                  <span class="text-truncate">{{Str2html $commit.Summary}}</span>
+                  <span class="text-truncate">{{RenderCommitMessage $commit.Summary $.RepoLink}}</span>
                 </td>
                 <td class="age">{{TimeSince $commit.Committer.When $.Lang}}</td>
             </tr>