Default Avatar özelliği kaldırıldı
This commit is contained in:
parent
50e9334db6
commit
4dddc767b4
3 changed files with 5 additions and 43 deletions
|
|
@ -63,15 +63,10 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
|
||||||
return Guid.TryParse(value, out var id) ? id : Guid.Empty;
|
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 (avatar.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
if (saveDefaultWhenMissing)
|
|
||||||
{
|
|
||||||
await SaveDefaultAvatarAsync(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,38 +98,6 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
|
||||||
user.SetAvatar(AvatarProvider.GetAvatar(configuration, user.TenantId?.ToString(), user.Id.ToString()));
|
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)]
|
[Authorize(IdentityPermissions.Users.Create)]
|
||||||
public async Task PostUserInsertAsync(DynamicApiBaseInput<CreateUpdateUserInput> input)
|
public async Task PostUserInsertAsync(DynamicApiBaseInput<CreateUpdateUserInput> input)
|
||||||
{
|
{
|
||||||
|
|
@ -160,7 +123,7 @@ public class ListFormDynamicApiAppService : PlatformAppService, IListFormDynamic
|
||||||
user.SetJobPositionId(ParseGuid(input.Data.JobPositionId));
|
user.SetJobPositionId(ParseGuid(input.Data.JobPositionId));
|
||||||
user.SetIsVerified(verify);
|
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.CreateAsync(user, input.Data.Password)).CheckErrors();
|
||||||
await userManager.SetLockoutEnabledAsync(user, true);
|
await userManager.SetLockoutEnabledAsync(user, true);
|
||||||
|
|
|
||||||
|
|
@ -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),
|
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",
|
DeleteCommand = $"UPDATE \"AbpUsers\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id",
|
||||||
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(),
|
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>() {
|
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||||
new () { Order=1,ColCount=1,ColSpan=1,ItemType="group",Items=[
|
new () { Order=1,ColCount=2,ColSpan=1,ItemType="group",Items=[
|
||||||
new EditingFormItemDto { Order=1, DataField="Avatar", ColSpan=1, EditorType2=EditorTypes.dxImageUpload, EditorOptions=EditorOptionValues.ImageUploadOptions(false) },
|
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=2, DataField="Email", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
|
||||||
new EditingFormItemDto { Order=3, DataField="Name", 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 },
|
new EditingFormItemDto { Order=4, DataField="Surname", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
|
||||||
|
|
|
||||||
|
|
@ -357,7 +357,6 @@ const MessengerWidget = () => {
|
||||||
<Avatar size={36} shape="circle" src={AVATAR_URL(contact.id, contact.tenantId || tenantId)} />
|
<Avatar size={36} shape="circle" src={AVATAR_URL(contact.id, contact.tenantId || tenantId)} />
|
||||||
<span className="min-w-0 flex-1">
|
<span className="min-w-0 flex-1">
|
||||||
<span className="block truncate text-sm font-medium">{contact.fullName}</span>
|
<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
|
<span
|
||||||
className={`mt-1 inline-flex items-center gap-1 text-xs font-medium ${
|
className={`mt-1 inline-flex items-center gap-1 text-xs font-medium ${
|
||||||
contact.isOnline ? 'text-emerald-600' : 'text-red-500'
|
contact.isOnline ? 'text-emerald-600' : 'text-red-500'
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue