update server lol
This commit is contained in:
2
MareAPI
2
MareAPI
Submodule MareAPI updated: 9199d9c667...edaa0ddb51
@@ -63,88 +63,6 @@ public partial class MareHub
|
|||||||
await Clients.Users(groupPairs).Client_GroupChangePermissions(new GroupPermissionDto(dto.Group, dto.Permissions)).ConfigureAwait(false);
|
await Clients.Users(groupPairs).Client_GroupChangePermissions(new GroupPermissionDto(dto.Group, dto.Permissions)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Authorize(Policy = "Identified")]
|
|
||||||
public async Task GroupChangeIndividualPermissionState(GroupPairUserPermissionDto dto)
|
|
||||||
{
|
|
||||||
_logger.LogCallInfo(MareHubLogger.Args(dto));
|
|
||||||
|
|
||||||
var (inGroup, groupPair) = await TryValidateUserInGroup(dto.Group.GID).ConfigureAwait(false);
|
|
||||||
if (!inGroup) return;
|
|
||||||
|
|
||||||
var groupPreferredPermissions = await _dbContext.GroupPairPreferredPermissions
|
|
||||||
.SingleAsync(u => u.UserUID == UserUID && u.GroupGID == dto.Group.GID).ConfigureAwait(false);
|
|
||||||
|
|
||||||
var wasPaused = groupPreferredPermissions.IsPaused;
|
|
||||||
groupPreferredPermissions.DisableSounds = dto.GroupPairPermissions.IsDisableSounds();
|
|
||||||
groupPreferredPermissions.DisableAnimations = dto.GroupPairPermissions.IsDisableAnimations();
|
|
||||||
groupPreferredPermissions.IsPaused = dto.GroupPairPermissions.IsPaused();
|
|
||||||
groupPreferredPermissions.DisableVFX = dto.GroupPairPermissions.IsDisableVFX();
|
|
||||||
|
|
||||||
// set the permissions for every group pair that is not sticky
|
|
||||||
var allPairs = (await GetAllPairInfo(UserUID).ConfigureAwait(false))
|
|
||||||
.Where(u => !u.Value.OwnPermissions.Sticky)
|
|
||||||
.ToDictionary(d => d.Key, d => d.Value, StringComparer.Ordinal);
|
|
||||||
|
|
||||||
var affectedGroupPairs = allPairs.Where(u => u.Value.GIDs.Contains(dto.GID, StringComparer.Ordinal)).ToList();
|
|
||||||
var groupUserUids = affectedGroupPairs.Select(g => g.Key).ToList();
|
|
||||||
var affectedPerms = await _dbContext.Permissions.Where(u => u.UserUID == UserUID
|
|
||||||
&& groupUserUids.Any(c => c == u.OtherUserUID))
|
|
||||||
.ToListAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
foreach (var perm in affectedPerms)
|
|
||||||
{
|
|
||||||
perm.DisableSounds = groupPreferredPermissions.DisableSounds;
|
|
||||||
perm.DisableAnimations = groupPreferredPermissions.DisableAnimations;
|
|
||||||
perm.IsPaused = groupPreferredPermissions.IsPaused;
|
|
||||||
perm.DisableVFX = groupPreferredPermissions.DisableVFX;
|
|
||||||
}
|
|
||||||
await _dbContext.SaveChangesAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
// send messages
|
|
||||||
UserPermissions permissions = UserPermissions.NoneSet;
|
|
||||||
permissions.SetPaused(groupPreferredPermissions.IsPaused);
|
|
||||||
permissions.SetDisableAnimations(groupPreferredPermissions.DisableAnimations);
|
|
||||||
permissions.SetDisableSounds(groupPreferredPermissions.DisableSounds);
|
|
||||||
permissions.SetDisableVFX(groupPreferredPermissions.DisableVFX);
|
|
||||||
|
|
||||||
// send apporpriate permission set to each user
|
|
||||||
await Clients.Users(affectedGroupPairs
|
|
||||||
.Select(k => k.Key))
|
|
||||||
.Client_UserUpdateOtherPairPermissions(new(new(UserUID), permissions)).ConfigureAwait(false);
|
|
||||||
|
|
||||||
await Clients.User(UserUID).Client_GroupChangeUserPairPermissions(dto).ConfigureAwait(false);
|
|
||||||
foreach (var item in affectedGroupPairs.Select(k => k.Key))
|
|
||||||
{
|
|
||||||
await Clients.User(UserUID).Client_UserUpdateSelfPairPermissions(new(new(item), permissions)).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var self = await _dbContext.Users.SingleAsync(u => u.UID == UserUID).ConfigureAwait(false);
|
|
||||||
|
|
||||||
if (wasPaused == groupPreferredPermissions.IsPaused) return;
|
|
||||||
|
|
||||||
foreach (var groupUserPair in affectedGroupPairs)
|
|
||||||
{
|
|
||||||
var groupUserIdent = await GetUserIdent(groupUserPair.Key).ConfigureAwait(false);
|
|
||||||
if (!string.IsNullOrEmpty(groupUserIdent))
|
|
||||||
{
|
|
||||||
// if we changed to paused and other was not paused before, we send offline
|
|
||||||
if (groupPreferredPermissions.IsPaused && !groupUserPair.Value.OtherPermissions.IsPaused)
|
|
||||||
{
|
|
||||||
await Clients.User(UserUID).Client_UserSendOffline(new(new(groupUserPair.Key, groupUserPair.Value.Alias))).ConfigureAwait(false);
|
|
||||||
await Clients.User(groupUserPair.Key)
|
|
||||||
.Client_UserSendOffline(new(self.ToUserData())).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
// if we changed to unpaused and other was not paused either we send online
|
|
||||||
else if (!groupPreferredPermissions.IsPaused && !groupUserPair.Value.OtherPermissions.IsPaused)
|
|
||||||
{
|
|
||||||
await Clients.User(UserUID).Client_UserSendOnline(new(new(groupUserPair.Key, groupUserPair.Value.Alias), groupUserIdent)).ConfigureAwait(false);
|
|
||||||
await Clients.User(groupUserPair.Key)
|
|
||||||
.Client_UserSendOnline(new(self.ToUserData(), UserCharaIdent)).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Authorize(Policy = "Identified")]
|
[Authorize(Policy = "Identified")]
|
||||||
public async Task GroupChangeOwnership(GroupPairDto dto)
|
public async Task GroupChangeOwnership(GroupPairDto dto)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,172 @@
|
|||||||
|
using MareSynchronos.API.Data.Enum;
|
||||||
|
using MareSynchronos.API.Dto;
|
||||||
|
using MareSynchronos.API.Dto.Group;
|
||||||
|
using MareSynchronos.API.Dto.User;
|
||||||
|
using MareSynchronos.API.Data.Extensions;
|
||||||
|
using MareSynchronosServer.Utils;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.SignalR;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace MareSynchronosServer.Hubs;
|
||||||
|
|
||||||
|
public partial class MareHub
|
||||||
|
{
|
||||||
|
[Authorize(Policy = "Authenticated")]
|
||||||
|
public async Task UserUpdateDefaultPermissions(DefaultPermissionsDto defaultPermissions)
|
||||||
|
{
|
||||||
|
_logger.LogCallInfo(MareHubLogger.Args(defaultPermissions));
|
||||||
|
|
||||||
|
var permissions = await _dbContext.UserDefaultPreferredPermissions.SingleAsync(u => u.UserUID == UserUID).ConfigureAwait(false);
|
||||||
|
|
||||||
|
permissions.DisableGroupAnimations = defaultPermissions.DisableGroupAnimations;
|
||||||
|
permissions.DisableGroupSounds = defaultPermissions.DisableGroupSounds;
|
||||||
|
permissions.DisableGroupVFX = defaultPermissions.DisableGroupVFX;
|
||||||
|
permissions.DisableIndividualAnimations = defaultPermissions.DisableIndividualAnimations;
|
||||||
|
permissions.DisableIndividualSounds = defaultPermissions.DisableIndividualSounds;
|
||||||
|
permissions.DisableIndividualVFX = defaultPermissions.DisableIndividualVFX;
|
||||||
|
permissions.IndividualIsSticky = defaultPermissions.IndividualIsSticky;
|
||||||
|
|
||||||
|
_dbContext.Update(permissions);
|
||||||
|
await _dbContext.SaveChangesAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
|
await Clients.Caller.Client_UserUpdateDefaultPermissions(defaultPermissions).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Authorize(Policy = "Identified")]
|
||||||
|
public async Task SetBulkPermissions(BulkPermissionsDto dto)
|
||||||
|
{
|
||||||
|
_logger.LogCallInfo(MareHubLogger.Args(
|
||||||
|
"Individual", string.Join(';', dto.AffectedUsers.Select(g => g.Key + ":" + g.Value)),
|
||||||
|
"Group", string.Join(';', dto.AffectedGroups.Select(g => g.Key + ":" + g.Value))));
|
||||||
|
|
||||||
|
// remove self
|
||||||
|
dto.AffectedUsers.Remove(UserUID, out _);
|
||||||
|
if (!dto.AffectedUsers.Any() && !dto.AffectedGroups.Any()) return;
|
||||||
|
|
||||||
|
// get all current pairs in any form
|
||||||
|
var allUsers = await GetAllPairInfo(UserUID).ConfigureAwait(false);
|
||||||
|
var ownDefaultPerms = await _dbContext.UserDefaultPreferredPermissions.SingleAsync(u => u.UserUID == UserUID).ConfigureAwait(false);
|
||||||
|
|
||||||
|
foreach (var user in dto.AffectedUsers)
|
||||||
|
{
|
||||||
|
bool setSticky = false;
|
||||||
|
var newPerm = user.Value;
|
||||||
|
if (!allUsers.TryGetValue(user.Key, out var pairData)) continue;
|
||||||
|
if (!pairData.OwnPermissions.Sticky && !newPerm.IsSticky())
|
||||||
|
{
|
||||||
|
setSticky = ownDefaultPerms.IndividualIsSticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pauseChange = pairData.OwnPermissions.IsPaused != newPerm.IsPaused();
|
||||||
|
var prevPermissions = await _dbContext.Permissions.SingleAsync(u => u.UserUID == UserUID && u.OtherUserUID == user.Key).ConfigureAwait(false);
|
||||||
|
|
||||||
|
prevPermissions.IsPaused = newPerm.IsPaused();
|
||||||
|
prevPermissions.DisableAnimations = newPerm.IsDisableAnimations();
|
||||||
|
prevPermissions.DisableSounds = newPerm.IsDisableSounds();
|
||||||
|
prevPermissions.DisableVFX = newPerm.IsDisableVFX();
|
||||||
|
prevPermissions.Sticky = newPerm.IsSticky() || setSticky;
|
||||||
|
_dbContext.Update(prevPermissions);
|
||||||
|
|
||||||
|
// send updated data to pair
|
||||||
|
var permCopy = newPerm;
|
||||||
|
permCopy.SetSticky(newPerm.IsSticky() || setSticky);
|
||||||
|
var permToOther = permCopy;
|
||||||
|
permToOther.SetSticky(false);
|
||||||
|
|
||||||
|
await Clients.User(UserUID).Client_UserUpdateSelfPairPermissions(new(new(user.Key), permCopy)).ConfigureAwait(false);
|
||||||
|
if (pairData.OtherPermissions == null) continue;
|
||||||
|
|
||||||
|
await Clients.User(user.Key).Client_UserUpdateOtherPairPermissions(new(new(UserUID), permToOther)).ConfigureAwait(false);
|
||||||
|
|
||||||
|
// check if pause change and send online or offline respectively
|
||||||
|
if (pauseChange && !pairData.OtherPermissions.IsPaused)
|
||||||
|
{
|
||||||
|
var otherCharaIdent = await GetUserIdent(user.Key).ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (UserCharaIdent == null || otherCharaIdent == null) continue;
|
||||||
|
|
||||||
|
if (newPerm.IsPaused())
|
||||||
|
{
|
||||||
|
await Clients.User(UserUID).Client_UserSendOffline(new(new(user.Key))).ConfigureAwait(false);
|
||||||
|
await Clients.User(user.Key).Client_UserSendOffline(new(new(UserUID))).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await Clients.User(UserUID).Client_UserSendOnline(new(new(user.Key), otherCharaIdent)).ConfigureAwait(false);
|
||||||
|
await Clients.User(user.Key).Client_UserSendOnline(new(new(UserUID), UserCharaIdent)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var group in dto.AffectedGroups)
|
||||||
|
{
|
||||||
|
var (inGroup, groupPair) = await TryValidateUserInGroup(group.Key).ConfigureAwait(false);
|
||||||
|
if (!inGroup) continue;
|
||||||
|
|
||||||
|
var groupPreferredPermissions = await _dbContext.GroupPairPreferredPermissions
|
||||||
|
.SingleAsync(u => u.UserUID == UserUID && u.GroupGID == group.Key).ConfigureAwait(false);
|
||||||
|
|
||||||
|
var wasPaused = groupPreferredPermissions.IsPaused;
|
||||||
|
groupPreferredPermissions.DisableSounds = group.Value.IsDisableSounds();
|
||||||
|
groupPreferredPermissions.DisableAnimations = group.Value.IsDisableAnimations();
|
||||||
|
groupPreferredPermissions.IsPaused = group.Value.IsPaused();
|
||||||
|
groupPreferredPermissions.DisableVFX = group.Value.IsDisableVFX();
|
||||||
|
|
||||||
|
var nonStickyPairs = allUsers.Where(u => !u.Value.OwnPermissions.Sticky).ToList();
|
||||||
|
var affectedGroupPairs = nonStickyPairs.Where(u => u.Value.GIDs.Contains(group.Key, StringComparer.Ordinal)).ToList();
|
||||||
|
var groupUserUids = affectedGroupPairs.Select(g => g.Key).ToList();
|
||||||
|
var affectedPerms = await _dbContext.Permissions.Where(u => u.UserUID == UserUID
|
||||||
|
&& groupUserUids.Any(c => c == u.OtherUserUID))
|
||||||
|
.ToListAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
|
foreach (var perm in affectedPerms)
|
||||||
|
{
|
||||||
|
perm.DisableSounds = groupPreferredPermissions.DisableSounds;
|
||||||
|
perm.DisableAnimations = groupPreferredPermissions.DisableAnimations;
|
||||||
|
perm.IsPaused = groupPreferredPermissions.IsPaused;
|
||||||
|
perm.DisableVFX = groupPreferredPermissions.DisableVFX;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserPermissions permissions = UserPermissions.NoneSet;
|
||||||
|
permissions.SetPaused(groupPreferredPermissions.IsPaused);
|
||||||
|
permissions.SetDisableAnimations(groupPreferredPermissions.DisableAnimations);
|
||||||
|
permissions.SetDisableSounds(groupPreferredPermissions.DisableSounds);
|
||||||
|
permissions.SetDisableVFX(groupPreferredPermissions.DisableVFX);
|
||||||
|
|
||||||
|
await Clients.Users(affectedGroupPairs
|
||||||
|
.Select(k => k.Key))
|
||||||
|
.Client_UserUpdateOtherPairPermissions(new(new(UserUID), permissions)).ConfigureAwait(false);
|
||||||
|
|
||||||
|
await Clients.User(UserUID).Client_GroupChangeUserPairPermissions(new GroupPairUserPermissionDto(new(group.Key), new(UserUID), group.Value)).ConfigureAwait(false);
|
||||||
|
foreach (var item in affectedGroupPairs.Select(k => k.Key))
|
||||||
|
{
|
||||||
|
await Clients.User(UserUID).Client_UserUpdateSelfPairPermissions(new(new(item), permissions)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wasPaused == groupPreferredPermissions.IsPaused) continue;
|
||||||
|
|
||||||
|
foreach (var groupUserPair in affectedGroupPairs)
|
||||||
|
{
|
||||||
|
var groupUserIdent = await GetUserIdent(groupUserPair.Key).ConfigureAwait(false);
|
||||||
|
if (!string.IsNullOrEmpty(groupUserIdent) && !groupUserPair.Value.OtherPermissions.IsPaused)
|
||||||
|
{
|
||||||
|
// if we changed to paused and other was not paused before, we send offline
|
||||||
|
if (groupPreferredPermissions.IsPaused)
|
||||||
|
{
|
||||||
|
await Clients.User(UserUID).Client_UserSendOffline(new(new(groupUserPair.Key, groupUserPair.Value.Alias))).ConfigureAwait(false);
|
||||||
|
await Clients.User(groupUserPair.Key).Client_UserSendOffline(new(new(UserUID))).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
// if we changed to unpaused and other was not paused either we send online
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await Clients.User(UserUID).Client_UserSendOnline(new(new(groupUserPair.Key, groupUserPair.Value.Alias), groupUserIdent)).ConfigureAwait(false);
|
||||||
|
await Clients.User(groupUserPair.Key).Client_UserSendOnline(new(new(UserUID), UserCharaIdent)).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await _dbContext.SaveChangesAsync().ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -372,66 +372,6 @@ public partial class MareHub
|
|||||||
await Clients.Users(dto.User.UID).Client_UserUpdateProfile(new(dto.User)).ConfigureAwait(false);
|
await Clients.Users(dto.User.UID).Client_UserUpdateProfile(new(dto.User)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Authorize(Policy = "Identified")]
|
|
||||||
public async Task UserSetPairPermissions(UserPermissionsDto dto)
|
|
||||||
{
|
|
||||||
_logger.LogCallInfo(MareHubLogger.Args(dto));
|
|
||||||
|
|
||||||
if (string.Equals(dto.User.UID, UserUID, StringComparison.Ordinal)) return;
|
|
||||||
UserPermissionSet prevPermissions = await _dbContext.Permissions.SingleOrDefaultAsync(w => w.UserUID == UserUID && w.OtherUserUID == dto.User.UID).ConfigureAwait(false);
|
|
||||||
if (prevPermissions == null) return; // you always should have permissions to another user
|
|
||||||
|
|
||||||
var oldPairData = await GetPairInfo(UserUID, dto.User.UID).ConfigureAwait(false);
|
|
||||||
bool setSticky = false;
|
|
||||||
if (!oldPairData.GIDs.Contains(Constants.IndividualKeyword, StringComparer.Ordinal))
|
|
||||||
{
|
|
||||||
if (!oldPairData.OwnPermissions.Sticky && !dto.Permissions.IsSticky())
|
|
||||||
{
|
|
||||||
var defaultPermissions = await _dbContext.UserDefaultPreferredPermissions.SingleAsync(u => u.UserUID == UserUID).ConfigureAwait(false);
|
|
||||||
setSticky = defaultPermissions.IndividualIsSticky;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var pauseChange = prevPermissions.IsPaused != dto.Permissions.IsPaused();
|
|
||||||
|
|
||||||
prevPermissions.IsPaused = dto.Permissions.IsPaused();
|
|
||||||
prevPermissions.DisableAnimations = dto.Permissions.IsDisableAnimations();
|
|
||||||
prevPermissions.DisableSounds = dto.Permissions.IsDisableSounds();
|
|
||||||
prevPermissions.DisableVFX = dto.Permissions.IsDisableVFX();
|
|
||||||
prevPermissions.Sticky = dto.Permissions.IsSticky() || setSticky;
|
|
||||||
_dbContext.Update(prevPermissions);
|
|
||||||
await _dbContext.SaveChangesAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
_logger.LogCallInfo(MareHubLogger.Args(dto, "Success"));
|
|
||||||
|
|
||||||
var permCopy = dto.Permissions;
|
|
||||||
permCopy.SetSticky(dto.Permissions.IsSticky() || setSticky);
|
|
||||||
|
|
||||||
await Clients.User(UserUID).Client_UserUpdateSelfPairPermissions(new UserPermissionsDto(dto.User, permCopy)).ConfigureAwait(false);
|
|
||||||
await Clients.User(dto.User.UID).Client_UserUpdateOtherPairPermissions(new UserPermissionsDto(new UserData(UserUID), dto.Permissions)).ConfigureAwait(false);
|
|
||||||
|
|
||||||
var newPairData = await GetPairInfo(UserUID, dto.User.UID).ConfigureAwait(false);
|
|
||||||
|
|
||||||
if (newPairData.OwnPermissions.IsPaused != oldPairData.OwnPermissions.IsPaused)
|
|
||||||
{
|
|
||||||
var otherCharaIdent = await GetUserIdent(dto.User.UID).ConfigureAwait(false);
|
|
||||||
var otherPermissions = newPairData.OtherPermissions;
|
|
||||||
|
|
||||||
if (UserCharaIdent == null || otherCharaIdent == null || (otherPermissions?.IsPaused ?? true)) return;
|
|
||||||
|
|
||||||
if (newPairData.OwnPermissions.IsPaused)
|
|
||||||
{
|
|
||||||
await Clients.User(UserUID).Client_UserSendOffline(dto).ConfigureAwait(false);
|
|
||||||
await Clients.User(dto.User.UID).Client_UserSendOffline(new(new(UserUID))).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await Clients.User(UserUID).Client_UserSendOnline(new(dto.User, otherCharaIdent)).ConfigureAwait(false);
|
|
||||||
await Clients.User(dto.User.UID).Client_UserSendOnline(new(new(UserUID), UserCharaIdent)).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Authorize(Policy = "Identified")]
|
[Authorize(Policy = "Identified")]
|
||||||
public async Task UserSetProfile(UserProfileDto dto)
|
public async Task UserSetProfile(UserProfileDto dto)
|
||||||
{
|
{
|
||||||
@@ -515,27 +455,6 @@ public partial class MareHub
|
|||||||
await Clients.Caller.Client_UserUpdateProfile(new(dto.User)).ConfigureAwait(false);
|
await Clients.Caller.Client_UserUpdateProfile(new(dto.User)).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Authorize(Policy = "Authenticated")]
|
|
||||||
public async Task UserUpdateDefaultPermissions(DefaultPermissionsDto defaultPermissions)
|
|
||||||
{
|
|
||||||
_logger.LogCallInfo(MareHubLogger.Args(defaultPermissions));
|
|
||||||
|
|
||||||
var permissions = await _dbContext.UserDefaultPreferredPermissions.SingleAsync(u => u.UserUID == UserUID).ConfigureAwait(false);
|
|
||||||
|
|
||||||
permissions.DisableGroupAnimations = defaultPermissions.DisableGroupAnimations;
|
|
||||||
permissions.DisableGroupSounds = defaultPermissions.DisableGroupSounds;
|
|
||||||
permissions.DisableGroupVFX = defaultPermissions.DisableGroupVFX;
|
|
||||||
permissions.DisableIndividualAnimations = defaultPermissions.DisableIndividualAnimations;
|
|
||||||
permissions.DisableIndividualSounds = defaultPermissions.DisableIndividualSounds;
|
|
||||||
permissions.DisableIndividualVFX = defaultPermissions.DisableIndividualVFX;
|
|
||||||
permissions.IndividualIsSticky = defaultPermissions.IndividualIsSticky;
|
|
||||||
|
|
||||||
_dbContext.Update(permissions);
|
|
||||||
await _dbContext.SaveChangesAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
await Clients.Caller.Client_UserUpdateDefaultPermissions(defaultPermissions).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
[GeneratedRegex(@"^([a-z0-9_ '+&,\.\-\{\}]+\/)+([a-z0-9_ '+&,\.\-\{\}]+\.[a-z]{3,4})$", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.ECMAScript)]
|
[GeneratedRegex(@"^([a-z0-9_ '+&,\.\-\{\}]+\/)+([a-z0-9_ '+&,\.\-\{\}]+\.[a-z]{3,4})$", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.ECMAScript)]
|
||||||
private static partial Regex GamePathRegex();
|
private static partial Regex GamePathRegex();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user