Default Avatar özelliği kaldırıldı

This commit is contained in:
Sedat ÖZTÜRK 2026-06-15 09:20:12 +03:00
parent 50e9334db6
commit 4dddc767b4
3 changed files with 5 additions and 43 deletions

View file

@ -63,15 +63,10 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
return Guid.TryParse(value, out var id) ? id : Guid.Empty;
}
private async Task SaveAvatarAsync(IdentityUser user, string avatar, bool saveDefaultWhenMissing = false)
private async Task SaveAvatarAsync(IdentityUser user, string avatar)
{
if (avatar.IsNullOrWhiteSpace())
{
if (saveDefaultWhenMissing)
{
await SaveDefaultAvatarAsync(user);
}
return;
}
@ -103,38 +98,6 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
user.SetAvatar(AvatarProvider.GetAvatar(configuration, user.TenantId?.ToString(), user.Id.ToString()));
}
private async Task SaveDefaultAvatarAsync(IdentityUser user)
{
var defaultAvatarPath = FindDefaultAvatarPath();
if (defaultAvatarPath == null)
{
return;
}
var fileName = $"{user.Id}.jpg";
await using var stream = File.OpenRead(defaultAvatarPath);
await blobCdnManager.SaveAsync(BlobContainerNames.Avatar, fileName, stream);
user.SetAvatar(AvatarProvider.GetAvatar(configuration, user.TenantId?.ToString(), user.Id.ToString()));
}
private string? FindDefaultAvatarPath()
{
var directory = new DirectoryInfo(hostEnvironment.ContentRootPath);
while (directory != null)
{
var candidate = Path.Combine(directory.FullName, "ui", "public", "img", "others", "default-profile.png");
if (File.Exists(candidate))
{
return candidate;
}
directory = directory.Parent;
}
return null;
}
[Authorize(IdentityPermissions.Users.Create)]
public async Task PostUserInsertAsync(DynamicApiBaseInput<CreateUpdateUserInput> input)
{
@ -160,7 +123,7 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
user.SetJobPositionId(ParseGuid(input.Data.JobPositionId));
user.SetIsVerified(verify);
await SaveAvatarAsync(user, input.Data.Avatar, saveDefaultWhenMissing: true);
await SaveAvatarAsync(user, input.Data.Avatar);
(await userManager.CreateAsync(user, input.Data.Password)).CheckErrors();
await userManager.SetLockoutEnabledAsync(user, true);

View file

@ -806,10 +806,10 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, listFormName, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Delete, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note),
DeleteCommand = $"UPDATE \"AbpUsers\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(),
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 710, true, true, true, true, false),
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 575, true, true, true, true, false),
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new () { Order=1,ColCount=1,ColSpan=1,ItemType="group",Items=[
new EditingFormItemDto { Order=1, DataField="Avatar", ColSpan=1, EditorType2=EditorTypes.dxImageUpload, EditorOptions=EditorOptionValues.ImageUploadOptions(false) },
new () { Order=1,ColCount=2,ColSpan=1,ItemType="group",Items=[
new EditingFormItemDto { Order=1, DataField="Avatar", ColSpan=2, EditorType2=EditorTypes.dxImageUpload, EditorOptions=EditorOptionValues.ImageUploadOptions(false) },
new EditingFormItemDto { Order=2, DataField="Email", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=3, DataField="Name", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=4, DataField="Surname", ColSpan=1, EditorType2=EditorTypes.dxTextBox },

View file

@ -357,7 +357,6 @@ const MessengerWidget = () => {
<Avatar size={36} shape="circle" src={AVATAR_URL(contact.id, contact.tenantId || tenantId)} />
<span className="min-w-0 flex-1">
<span className="block truncate text-sm font-medium">{contact.fullName}</span>
<span className="block truncate text-xs text-gray-500">{contact.email || contact.userName}</span>
<span
className={`mt-1 inline-flex items-center gap-1 text-xs font-medium ${
contact.isOnline ? 'text-emerald-600' : 'text-red-500'