mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Merge branch 'dev' of github.com:gogits/gogs into dev
This commit is contained in:
		@@ -6,8 +6,6 @@ package models
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// OT: Oauth2 Type
 | 
					// OT: Oauth2 Type
 | 
				
			||||||
@@ -20,7 +18,6 @@ const (
 | 
				
			|||||||
var (
 | 
					var (
 | 
				
			||||||
	ErrOauth2RecordNotExists       = errors.New("not exists oauth2 record")
 | 
						ErrOauth2RecordNotExists       = errors.New("not exists oauth2 record")
 | 
				
			||||||
	ErrOauth2NotAssociatedWithUser = errors.New("not associated with user")
 | 
						ErrOauth2NotAssociatedWithUser = errors.New("not associated with user")
 | 
				
			||||||
	ErrOauth2NotExist              = errors.New("not exist oauth2")
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Oauth2 struct {
 | 
					type Oauth2 struct {
 | 
				
			||||||
@@ -61,12 +58,11 @@ func GetOauth2(identity string) (oa *Oauth2, err error) {
 | 
				
			|||||||
func GetOauth2ById(id int64) (oa *Oauth2, err error) {
 | 
					func GetOauth2ById(id int64) (oa *Oauth2, err error) {
 | 
				
			||||||
	oa = new(Oauth2)
 | 
						oa = new(Oauth2)
 | 
				
			||||||
	has, err := orm.Id(id).Get(oa)
 | 
						has, err := orm.Id(id).Get(oa)
 | 
				
			||||||
	log.Info("oa: %v", oa)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if !has {
 | 
						if !has {
 | 
				
			||||||
		return nil, ErrOauth2NotExist
 | 
							return nil, ErrOauth2RecordNotExists
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return oa, nil
 | 
						return oa, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,6 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/base"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
						"github.com/gogits/gogs/modules/log"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/middleware"
 | 
						"github.com/gogits/gogs/modules/middleware"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/oauth2"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type SocialConnector interface {
 | 
					type SocialConnector interface {
 | 
				
			||||||
@@ -77,7 +76,10 @@ func extractPath(next string) string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// github && google && ...
 | 
					// github && google && ...
 | 
				
			||||||
func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) {
 | 
					func SocialSignIn(ctx *middleware.Context) {
 | 
				
			||||||
 | 
						//if base.OauthService != nil && base.OauthService.GitHub.Enabled {
 | 
				
			||||||
 | 
						//}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var socid int64
 | 
						var socid int64
 | 
				
			||||||
	var ok bool
 | 
						var ok bool
 | 
				
			||||||
	next := extractPath(ctx.Query("next"))
 | 
						next := extractPath(ctx.Query("next"))
 | 
				
			||||||
@@ -142,9 +144,9 @@ func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) {
 | 
				
			|||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	case models.ErrOauth2NotAssociatedWithUser:
 | 
						case models.ErrOauth2NotAssociatedWithUser:
 | 
				
			||||||
 | 
							ctx.Session.Set("socialId", oa.Id)
 | 
				
			||||||
		ctx.Session.Set("socialName", soc.Name())
 | 
							ctx.Session.Set("socialName", soc.Name())
 | 
				
			||||||
		ctx.Session.Set("socialEmail", soc.Email())
 | 
							ctx.Session.Set("socialEmail", soc.Email())
 | 
				
			||||||
		ctx.Session.Set("socialId", oa.Id)
 | 
					 | 
				
			||||||
		ctx.Redirect("/user/sign_up")
 | 
							ctx.Redirect("/user/sign_up")
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,7 +82,6 @@ func SignIn(ctx *middleware.Context) {
 | 
				
			|||||||
		ctx.Data["OauthGitHubEnabled"] = base.OauthService.GitHub.Enabled
 | 
							ctx.Data["OauthGitHubEnabled"] = base.OauthService.GitHub.Enabled
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var user *models.User
 | 
					 | 
				
			||||||
	// Check auto-login.
 | 
						// Check auto-login.
 | 
				
			||||||
	userName := ctx.GetCookie(base.CookieUserName)
 | 
						userName := ctx.GetCookie(base.CookieUserName)
 | 
				
			||||||
	if len(userName) == 0 {
 | 
						if len(userName) == 0 {
 | 
				
			||||||
@@ -91,7 +90,6 @@ func SignIn(ctx *middleware.Context) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	isSucceed := false
 | 
						isSucceed := false
 | 
				
			||||||
	var err error
 | 
					 | 
				
			||||||
	defer func() {
 | 
						defer func() {
 | 
				
			||||||
		if !isSucceed {
 | 
							if !isSucceed {
 | 
				
			||||||
			log.Trace("%s auto-login cookie cleared: %s", ctx.Req.RequestURI, userName)
 | 
								log.Trace("%s auto-login cookie cleared: %s", ctx.Req.RequestURI, userName)
 | 
				
			||||||
@@ -101,7 +99,7 @@ func SignIn(ctx *middleware.Context) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	user, err = models.GetUserByName(userName)
 | 
						user, err := models.GetUserByName(userName)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.HTML(500, "user/signin")
 | 
							ctx.HTML(500, "user/signin")
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -181,6 +179,8 @@ func SignOut(ctx *middleware.Context) {
 | 
				
			|||||||
	ctx.Session.Delete("userId")
 | 
						ctx.Session.Delete("userId")
 | 
				
			||||||
	ctx.Session.Delete("userName")
 | 
						ctx.Session.Delete("userName")
 | 
				
			||||||
	ctx.Session.Delete("socialId")
 | 
						ctx.Session.Delete("socialId")
 | 
				
			||||||
 | 
						ctx.Session.Delete("socialName")
 | 
				
			||||||
 | 
						ctx.Session.Delete("socialEmail")
 | 
				
			||||||
	ctx.SetCookie(base.CookieUserName, "", -1)
 | 
						ctx.SetCookie(base.CookieUserName, "", -1)
 | 
				
			||||||
	ctx.SetCookie(base.CookieRememberName, "", -1)
 | 
						ctx.SetCookie(base.CookieRememberName, "", -1)
 | 
				
			||||||
	ctx.Redirect("/")
 | 
						ctx.Redirect("/")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,15 @@
 | 
				
			|||||||
<div class="container" id="body" data-page="user-signin">
 | 
					<div class="container" id="body" data-page="user-signin">
 | 
				
			||||||
    <form action="/user/login" method="post" class="form-horizontal card" id="login-card">
 | 
					    <form action="/user/login" method="post" class="form-horizontal card" id="login-card">
 | 
				
			||||||
        {{.CsrfTokenHtml}}
 | 
					        {{.CsrfTokenHtml}}
 | 
				
			||||||
        <h3>Log in</h3>
 | 
					        <h3>Log in
 | 
				
			||||||
 | 
					        {{if .OauthEnabled}}
 | 
				
			||||||
 | 
					            <small class="pull-right">social login: 
 | 
				
			||||||
 | 
					            {{if .OauthGitHubEnabled}}
 | 
				
			||||||
 | 
					                <a href="/user/login/github?next=/user/sign_up"><i class="fa fa-github-square fa-2x"></i></a>
 | 
				
			||||||
 | 
					            {{end}}
 | 
				
			||||||
 | 
					            </small>
 | 
				
			||||||
 | 
					        {{end}}
 | 
				
			||||||
 | 
					        </h3>
 | 
				
			||||||
        {{template "base/alert" .}}
 | 
					        {{template "base/alert" .}}
 | 
				
			||||||
        <div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}">
 | 
					        <div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}">
 | 
				
			||||||
            <label class="col-md-4 control-label">Username: </label>
 | 
					            <label class="col-md-4 control-label">Username: </label>
 | 
				
			||||||
@@ -43,12 +51,12 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        {{if .OauthEnabled}}
 | 
					      <!--   {{if .OauthEnabled}}
 | 
				
			||||||
        <div class="form-group text-center" id="social-login">
 | 
					        <div class="form-group text-center" id="social-login">
 | 
				
			||||||
            <h4>Log In with Social Accounts</h4>
 | 
					            <h4>Log In with Social Accounts</h4>
 | 
				
			||||||
            {{if .OauthGitHubEnabled}}<a href="/user/login/github?next=/user/sign_up"><i class="fa fa-github-square fa-3x"></i></a>{{end}}
 | 
					            {{if .OauthGitHubEnabled}}<a href="/user/login/github?next=/user/sign_up"><i class="fa fa-github-square fa-3x"></i></a>{{end}}
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        {{end}}
 | 
					        {{end}} -->
 | 
				
			||||||
    </form>
 | 
					    </form>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{{template "base/footer" .}}
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,8 +12,6 @@
 | 
				
			|||||||
			<h3>Sign Up</h3>
 | 
								<h3>Sign Up</h3>
 | 
				
			||||||
		{{end}}
 | 
							{{end}}
 | 
				
			||||||
	    {{template "base/alert" .}}
 | 
						    {{template "base/alert" .}}
 | 
				
			||||||
		{{if .IsSocialLogin}}
 | 
					 | 
				
			||||||
		{{end}}
 | 
					 | 
				
			||||||
		<div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}">
 | 
							<div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}">
 | 
				
			||||||
			<label class="col-md-4 control-label">Username: </label>
 | 
								<label class="col-md-4 control-label">Username: </label>
 | 
				
			||||||
			<div class="col-md-6">
 | 
								<div class="col-md-6">
 | 
				
			||||||
@@ -23,7 +21,7 @@
 | 
				
			|||||||
		<div class="form-group {{if .Err_Email}}has-error has-feedback{{end}}">
 | 
							<div class="form-group {{if .Err_Email}}has-error has-feedback{{end}}">
 | 
				
			||||||
			<label class="col-md-4 control-label">Email: </label>
 | 
								<label class="col-md-4 control-label">Email: </label>
 | 
				
			||||||
			<div class="col-md-6">
 | 
								<div class="col-md-6">
 | 
				
			||||||
				<input name="email" class="form-control" placeholder="Type your e-mail address" value="{{.email}}{{.socialEmail}}" required="required" title="Email is not valid">
 | 
									<input name="email" class="form-control" placeholder="Type your e-mail address" value="{{.email}}" required="required" title="Email is not valid">
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								web.go
									
									
									
									
									
								
							@@ -20,7 +20,6 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/base"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/log"
 | 
						"github.com/gogits/gogs/modules/log"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/middleware"
 | 
						"github.com/gogits/gogs/modules/middleware"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/oauth2"
 | 
					 | 
				
			||||||
	"github.com/gogits/gogs/routers"
 | 
						"github.com/gogits/gogs/routers"
 | 
				
			||||||
	"github.com/gogits/gogs/routers/admin"
 | 
						"github.com/gogits/gogs/routers/admin"
 | 
				
			||||||
	"github.com/gogits/gogs/routers/api/v1"
 | 
						"github.com/gogits/gogs/routers/api/v1"
 | 
				
			||||||
@@ -59,17 +58,6 @@ func runWeb(*cli.Context) {
 | 
				
			|||||||
	m.Use(middleware.Renderer(middleware.RenderOptions{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 | 
						m.Use(middleware.Renderer(middleware.RenderOptions{Funcs: []template.FuncMap{base.TemplateFuncs}}))
 | 
				
			||||||
	m.Use(middleware.InitContext())
 | 
						m.Use(middleware.InitContext())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if base.OauthService != nil {
 | 
					 | 
				
			||||||
		if base.OauthService.GitHub.Enabled {
 | 
					 | 
				
			||||||
			m.Use(oauth2.Github(&oauth2.Options{
 | 
					 | 
				
			||||||
				ClientId:     base.OauthService.GitHub.ClientId,
 | 
					 | 
				
			||||||
				ClientSecret: base.OauthService.GitHub.ClientSecret,
 | 
					 | 
				
			||||||
				RedirectURL:  base.AppUrl + oauth2.PathCallback[1:],
 | 
					 | 
				
			||||||
				Scopes:       []string{base.OauthService.GitHub.Scopes},
 | 
					 | 
				
			||||||
			}))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	reqSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: true})
 | 
						reqSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: true})
 | 
				
			||||||
	ignSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: base.Service.RequireSignInView})
 | 
						ignSignIn := middleware.Toggle(&middleware.ToggleOptions{SignInRequire: base.Service.RequireSignInView})
 | 
				
			||||||
	ignSignInAndCsrf := middleware.Toggle(&middleware.ToggleOptions{
 | 
						ignSignInAndCsrf := middleware.Toggle(&middleware.ToggleOptions{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user