fix permissions on group join
This commit is contained in:
@@ -453,12 +453,12 @@ public partial class MareHub
|
|||||||
var otherPermissionToSelf = userinfo?.OtherPermissions ?? null;
|
var otherPermissionToSelf = userinfo?.OtherPermissions ?? null;
|
||||||
if (otherPermissionToSelf == null)
|
if (otherPermissionToSelf == null)
|
||||||
{
|
{
|
||||||
var existingPermissionsOnDb = await DbContext.Permissions.SingleOrDefaultAsync(p => p.UserUID == pair.GroupUserUID && p.OtherUserUID == UserUID).ConfigureAwait(false);
|
var otherExistingPermsOnDb = await DbContext.Permissions.SingleOrDefaultAsync(p => p.UserUID == pair.GroupUserUID && p.OtherUserUID == UserUID).ConfigureAwait(false);
|
||||||
|
|
||||||
if (existingPermissionsOnDb == null)
|
if (otherExistingPermsOnDb == null)
|
||||||
{
|
{
|
||||||
var otherPreferred = await DbContext.GroupPairPreferredPermissions.SingleAsync(u => u.GroupGID == group.GID && u.UserUID == pair.GroupUserUID).ConfigureAwait(false);
|
var otherPreferred = await DbContext.GroupPairPreferredPermissions.SingleAsync(u => u.GroupGID == group.GID && u.UserUID == pair.GroupUserUID).ConfigureAwait(false);
|
||||||
existingPermissionsOnDb = new()
|
otherExistingPermsOnDb = new()
|
||||||
{
|
{
|
||||||
UserUID = pair.GroupUserUID,
|
UserUID = pair.GroupUserUID,
|
||||||
OtherUserUID = UserUID,
|
OtherUserUID = UserUID,
|
||||||
@@ -469,27 +469,37 @@ public partial class MareHub
|
|||||||
Sticky = false
|
Sticky = false
|
||||||
};
|
};
|
||||||
|
|
||||||
await DbContext.AddAsync(existingPermissionsOnDb).ConfigureAwait(false);
|
await DbContext.AddAsync(otherExistingPermsOnDb).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else if (!allUserPairs.ContainsKey(pair.GroupUserUID))
|
else if (!otherExistingPermsOnDb.Sticky)
|
||||||
{
|
{
|
||||||
var otherPreferred = await DbContext.GroupPairPreferredPermissions.SingleAsync(u => u.GroupGID == group.GID && u.UserUID == pair.GroupUserUID).ConfigureAwait(false);
|
var otherPreferred = await DbContext.GroupPairPreferredPermissions.SingleAsync(u => u.GroupGID == group.GID && u.UserUID == pair.GroupUserUID).ConfigureAwait(false);
|
||||||
existingPermissionsOnDb.DisableAnimations = otherPreferred.DisableAnimations;
|
otherExistingPermsOnDb.DisableAnimations = otherPreferred.DisableAnimations;
|
||||||
existingPermissionsOnDb.DisableSounds = otherPreferred.DisableSounds;
|
otherExistingPermsOnDb.DisableSounds = otherPreferred.DisableSounds;
|
||||||
existingPermissionsOnDb.DisableVFX = otherPreferred.DisableVFX;
|
otherExistingPermsOnDb.DisableVFX = otherPreferred.DisableVFX;
|
||||||
existingPermissionsOnDb.IsPaused = otherPreferred.IsPaused;
|
otherExistingPermsOnDb.IsPaused = otherPreferred.IsPaused;
|
||||||
|
|
||||||
DbContext.Update(existingPermissionsOnDb);
|
DbContext.Update(otherExistingPermsOnDb);
|
||||||
}
|
}
|
||||||
|
|
||||||
otherPermissionToSelf = existingPermissionsOnDb;
|
otherPermissionToSelf = otherExistingPermsOnDb;
|
||||||
|
}
|
||||||
|
else if (!otherPermissionToSelf.Sticky)
|
||||||
|
{
|
||||||
|
var otherPreferred = await DbContext.GroupPairPreferredPermissions.SingleAsync(u => u.GroupGID == group.GID && u.UserUID == pair.GroupUserUID).ConfigureAwait(false);
|
||||||
|
otherPermissionToSelf.DisableAnimations = otherPreferred.DisableAnimations;
|
||||||
|
otherPermissionToSelf.DisableSounds = otherPreferred.DisableSounds;
|
||||||
|
otherPermissionToSelf.DisableVFX = otherPreferred.DisableVFX;
|
||||||
|
otherPermissionToSelf.IsPaused = otherPreferred.IsPaused;
|
||||||
|
|
||||||
|
DbContext.Update(otherPermissionToSelf);
|
||||||
}
|
}
|
||||||
|
|
||||||
await Clients.User(UserUID).Client_GroupPairJoined(new GroupPairFullInfoDto(group.ToGroupData(),
|
await Clients.User(UserUID).Client_GroupPairJoined(new GroupPairFullInfoDto(group.ToGroupData(),
|
||||||
pair.ToUserData(), ownPermissionsToOther.ToUserPermissions(setSticky: ownPermissionsToOther.Sticky),
|
pair.ToUserData(), ownPermissionsToOther.ToUserPermissions(setSticky: ownPermissionsToOther.Sticky),
|
||||||
otherPermissionToSelf.ToUserPermissions(setSticky: false))).ConfigureAwait(false);
|
otherPermissionToSelf.ToUserPermissions(setSticky: false))).ConfigureAwait(false);
|
||||||
await Clients.User(pair.GroupUserUID).Client_GroupPairJoined(new GroupPairFullInfoDto(group.ToGroupData(),
|
await Clients.User(pair.GroupUserUID).Client_GroupPairJoined(new GroupPairFullInfoDto(group.ToGroupData(),
|
||||||
self.ToUserData(), otherPermissionToSelf.ToUserPermissions(setSticky: false),
|
self.ToUserData(), otherPermissionToSelf.ToUserPermissions(setSticky: otherPermissionToSelf.Sticky),
|
||||||
ownPermissionsToOther.ToUserPermissions(setSticky: false))).ConfigureAwait(false);
|
ownPermissionsToOther.ToUserPermissions(setSticky: false))).ConfigureAwait(false);
|
||||||
|
|
||||||
// if not paired prior and neither has the permissions set to paused, send online
|
// if not paired prior and neither has the permissions set to paused, send online
|
||||||
|
|||||||
Reference in New Issue
Block a user