diff --git a/back/src/Kyoo.Core/Controllers/Repositories/UserRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/UserRepository.cs
index b07c81ed..c351a420 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/UserRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/UserRepository.cs
@@ -16,11 +16,13 @@
// You should have received a copy of the GNU General Public License
// along with Kyoo. If not, see .
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Kyoo.Abstractions.Controllers;
using Kyoo.Abstractions.Models;
+using Kyoo.Abstractions.Models.Permissions;
using Kyoo.Abstractions.Models.Utils;
using Kyoo.Postgresql;
using Microsoft.EntityFrameworkCore;
@@ -58,6 +60,16 @@ public class UserRepository(DatabaseContext database, IThumbnailsManager thumbs)
///
public override async Task Create(User obj)
{
+ // If no users exists, the new one will be an admin. Give it every permissions.
+ if (!await _database.Users.AnyAsync())
+ {
+ obj.Permissions = Enum.GetNames()
+ .Where(x => x != nameof(Group.None))
+ .SelectMany(group =>
+ Enum.GetNames().Select(kind => $"{group}.{kind}".ToLowerInvariant())
+ )
+ .ToArray();
+ }
await base.Create(obj);
_database.Entry(obj).State = EntityState.Added;
await _database.SaveChangesAsync(() => Get(obj.Slug));
diff --git a/shell.nix b/shell.nix
index 6129db68..82de17e8 100644
--- a/shell.nix
+++ b/shell.nix
@@ -10,7 +10,7 @@
combinePackages [
sdk_7_0
aspnetcore_7_0
- runtime_6_0
+ aspnetcore_6_0
];
in
pkgs.mkShell {