Browse Source

Bugfix with logout

pull/1/head
Sebastian 10 years ago
parent
commit
ba2cccec9f
  1. 1
      src/Squidex/Controllers/Api/Apps/AppClientsController.cs
  2. 16
      src/Squidex/Controllers/UI/Account/AccountController.cs
  3. 7
      src/Squidex/app/features/settings/pages/clients/client.component.html
  4. 6
      src/Squidex/app/shared/services/auth.service.ts
  5. 13
      src/Squidex/app/shell/pages/home/home-page.component.scss
  6. 10
      src/Squidex/app/shell/pages/not-found/not-found-page.component.html
  7. 27
      src/Squidex/app/shell/pages/not-found/not-found-page.component.scss
  8. 3
      src/Squidex/app/theme/_bootstrap.scss

1
src/Squidex/Controllers/Api/Apps/AppClientsController.cs

@ -54,6 +54,7 @@ namespace Squidex.Controllers.Api.Apps
[ProducesResponseType(typeof(ClientDto[]), 200)] [ProducesResponseType(typeof(ClientDto[]), 200)]
public async Task<IActionResult> GetClients(string app) public async Task<IActionResult> GetClients(string app)
{ {
return StatusCode(401);
var entity = await appProvider.FindAppByNameAsync(app); var entity = await appProvider.FindAppByNameAsync(app);
if (entity == null) if (entity == null)

16
src/Squidex/Controllers/UI/Account/AccountController.cs

@ -16,6 +16,8 @@ using Microsoft.AspNetCore.Identity.MongoDB;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using NSwag.Annotations; using NSwag.Annotations;
using Squidex.Infrastructure.Security; using Squidex.Infrastructure.Security;
using Microsoft.Extensions.Options;
using Squidex.Config;
// ReSharper disable RedundantIfElseBlock // ReSharper disable RedundantIfElseBlock
// ReSharper disable ConvertIfStatementToReturnStatement // ReSharper disable ConvertIfStatementToReturnStatement
@ -27,14 +29,17 @@ namespace Squidex.Controllers.UI.Account
{ {
private readonly SignInManager<IdentityUser> signInManager; private readonly SignInManager<IdentityUser> signInManager;
private readonly UserManager<IdentityUser> userManager; private readonly UserManager<IdentityUser> userManager;
private readonly IOptions<MyUrlsOptions> urlOptions;
private readonly IIdentityServerInteractionService interactions; private readonly IIdentityServerInteractionService interactions;
public AccountController( public AccountController(
SignInManager<IdentityUser> signInManager, SignInManager<IdentityUser> signInManager,
UserManager<IdentityUser> userManager, UserManager<IdentityUser> userManager,
IOptions<MyUrlsOptions> urlOptions,
IIdentityServerInteractionService interactions) IIdentityServerInteractionService interactions)
{ {
this.signInManager = signInManager; this.signInManager = signInManager;
this.urlOptions = urlOptions;
this.userManager = userManager; this.userManager = userManager;
this.interactions = interactions; this.interactions = interactions;
} }
@ -76,7 +81,14 @@ namespace Squidex.Controllers.UI.Account
await signInManager.SignOutAsync(); await signInManager.SignOutAsync();
return context.PostLogoutRedirectUri != null ? (IActionResult)Redirect(context.PostLogoutRedirectUri) : StatusCode(201); var logoutUrl = context.PostLogoutRedirectUri;
if (string.IsNullOrWhiteSpace(logoutUrl))
{
logoutUrl = urlOptions.Value.BuildUrl("logout");
}
return Redirect(logoutUrl);
} }
[HttpGet] [HttpGet]

7
src/Squidex/app/features/settings/pages/clients/client.component.html

@ -15,6 +15,13 @@
<div class="client-name"> <div class="client-name">
<form *ngIf="isRenaming" class="form-inline" [formGroup]="renameForm" (submit)="rename()"> <form *ngIf="isRenaming" class="form-inline" [formGroup]="renameForm" (submit)="rename()">
<div class="form-group"> <div class="form-group">
<div class="errors-box" *ngIf="renameForm.get('name').invalid" [@fade]>
<div class="errors">
<span *ngIf="renameForm.get('name').hasError('required')">
Name is required.
</span>
</div>
</div>
<input type="text" class="form-control" formControlName="name" maxlength="20" sqxFocusOnInit (keydown)="onKeyDown($event.keyCode)" /> <input type="text" class="form-control" formControlName="name" maxlength="20" sqxFocusOnInit (keydown)="onKeyDown($event.keyCode)" />
</div> </div>

6
src/Squidex/app/shared/services/auth.service.ts

@ -189,11 +189,15 @@ export class AuthService {
return response.catch((error: Response) => { return response.catch((error: Response) => {
if (error.status === 401 || error.status === 404) { if (error.status === 401 || error.status === 404) {
this.logoutRedirect(); this.logoutRedirect();
return Observable.empty<Response>();
} else if (error.status === 403) { } else if (error.status === 403) {
this.router.navigate(['/404']); this.router.navigate(['/404']);
return Observable.empty<Response>();
} }
return Observable.throw(error); return Observable.throw(response);
}); });
} }

13
src/Squidex/app/shell/pages/home/home-page.component.scss

@ -9,15 +9,16 @@
.logo { .logo {
height: 60px; height: 60px;
display: display-block;
} }
.login-button { .login {
margin: 40px 0; &-button {
} margin: 40px 0;
}
.login-hint { &-hint {
font-style: italic; font-style: italic;
}
} }
.proudly-made { .proudly-made {

10
src/Squidex/app/shell/pages/not-found/not-found-page.component.html

@ -1,3 +1,9 @@
<div class="simple-error"> <div class="content">
Not found <img class="logo" src="/images/logo.png" />
<h1>Not Found</h1>
<p>Sorry, the page you are looking for does not exist</p>
<a routerLink="../">Back to Homepage</a>
</div> </div>

27
src/Squidex/app/shell/pages/not-found/not-found-page.component.scss

@ -0,0 +1,27 @@
@import '_mixins';
@import '_vars';
.content {
margin: 100px auto;
max-width: 500px;
text-align: center;
}
.logo {
height: 60px;
display: display-block;
}
.login-button {
margin: 40px 0;
}
.login-hint {
font-style: italic;
}
.proudly-made {
margin-top: 100px;
font-size: 11px;
font-style: italic;
}

3
src/Squidex/app/theme/_bootstrap.scss

@ -127,10 +127,11 @@
} }
& { & {
@include absolute(-2.4rem, 0, auto, 0); @include absolute(-2.4rem, auto, auto, 0);
@include border-radius(2px); @include border-radius(2px);
color: $color-accent-dark; color: $color-accent-dark;
cursor: none; cursor: none;
display: inline-block;
font-size: .9rem; font-size: .9rem;
font-weight: normal; font-weight: normal;
line-height: 2rem; line-height: 2rem;

Loading…
Cancel
Save