11using System . Collections . Generic ;
22using System . Net . Http ;
33using App . DL . Enum ;
4- using App . DL . Model . Auth ;
54using App . DL . Repository . Auth ;
65using App . DL . Repository . User ;
76using Micron . DL . Middleware ;
87using Micron . DL . Module . Auth ;
98using Micron . DL . Module . Config ;
109using Micron . DL . Module . Controller ;
1110using Micron . DL . Module . Http ;
11+ using Micron . DL . Module . Misc ;
1212using Nancy ;
1313using Newtonsoft . Json . Linq ;
1414using Octokit ;
@@ -18,18 +18,18 @@ public sealed class GithubAuthController : BaseController {
1818 protected override IMiddleware [ ] Middleware ( ) => new IMiddleware [ ] { } ;
1919
2020 private const string Scopes = "user:email,read:user" ;
21-
21+
2222 public GithubAuthController ( ) {
2323 var clientId = AppConfig . GetConfiguration ( "auth:external:github:client_id" ) ;
2424 var clientSecret = AppConfig . GetConfiguration ( "auth:external:github:client_secret" ) ;
25-
25+
2626 Get ( "/api/v1/auth/github/login_link/get" , _ => {
2727 var loginLink = $ "https://github.com/login/oauth/authorize?scope={ Scopes } &client_id={ clientId } ";
2828 return HttpResponse . Data ( new JObject ( ) {
2929 [ "login_link" ] = loginLink
3030 } ) ;
3131 } ) ;
32-
32+
3333 Get ( "/api/v1/auth/github/get_auth_token" , _ => {
3434 var responseBody = "" ;
3535 var code = GetRequestStr ( "code" ) ;
@@ -65,9 +65,11 @@ public GithubAuthController() {
6565
6666 var githubUser = githubClient . User . Current ( ) . Result ;
6767
68- var user = UserRepository . FindByEmail ( githubUser . Email ) ??
68+ var userEmail = githubUser . Email ?? $ "{ Rand . RandomString ( ) } -needs-update@gitcom.org";
69+
70+ var user = UserRepository . FindByEmail ( userEmail ) ??
6971 UserRepository . FindOrCreateByEmailAndLogin (
70- githubUser . Email , githubUser . Login , null ,
72+ userEmail , githubUser . Login , null ,
7173 UserRepository . FindByGuid ( GetRequestStr ( "referral_key" ) )
7274 ) ;
7375
0 commit comments