Browse Source

Bugfix in UI when user has a single permission.

pull/332/head
Sebastian Stehle 7 years ago
parent
commit
89539c165e
  1. 13
      src/Squidex.Infrastructure/PubSubExtensions.cs
  2. 2
      src/Squidex/app/shared/services/auth.service.ts

13
src/Squidex.Infrastructure/PubSubExtensions.cs

@ -6,6 +6,7 @@
// ==========================================================================
using System;
using System.Threading;
using System.Threading.Tasks;
#pragma warning disable 4014
@ -46,7 +47,7 @@ namespace Squidex.Infrastructure
IDisposable subscription = null;
try
{
var receiveTask = new TaskCompletionSource<TResponse>();
var receiveTask = new TaskCompletionSource<TResponse>(TaskCreationOptions.RunContinuationsAsynchronously);
subscription = pubsub.Subscribe<Response<TResponse>>(response =>
{
@ -58,17 +59,23 @@ namespace Squidex.Infrastructure
Task.Run(() => pubsub.Publish(request, self));
var firstTask = await Task.WhenAny(receiveTask.Task, Task.Delay(timeout));
using (var cts = new CancellationTokenSource())
{
var delayTask = Task.Delay(timeout, cts.Token);
if (firstTask.Id != receiveTask.Task.Id)
var resultTask = await Task.WhenAny(receiveTask.Task, delayTask);
if (resultTask == delayTask)
{
throw new TaskCanceledException();
}
else
{
cts.Cancel();
return await receiveTask.Task;
}
}
}
finally
{
subscription?.Dispose();

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

@ -56,6 +56,8 @@ export class Profile {
if (Types.isArrayOfString(permissions)) {
this.permissions = permissions.map(x => new Permission(x));
} else if (Types.isString(permissions)) {
this.permissions = [new Permission(permissions)];
} else {
this.permissions = [];
}

Loading…
Cancel
Save