Skip to content

Commit acc8301

Browse files
bodnaraxkureck
authored andcommitted
fix: attribute values casting
* corrected attribute value cast
1 parent 2936d85 commit acc8301

File tree

37 files changed

+91
-102
lines changed

37 files changed

+91
-102
lines changed

apps/admin-gui/src/app/shared/components/dialogs/create-sponsored-member-dialog/create-sponsored-member-dialog.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ export class CreateSponsoredMemberDialogComponent implements OnInit {
145145
.filter((attr) => attr.friendlyNameParameter === namespace)
146146
.filter((attr) => attr.value !== null)
147147
.forEach((attr) => {
148-
this.loginThatWasSet = attr.value as unknown as string;
148+
this.loginThatWasSet = attr.value as string;
149149
});
150150
}
151151
this.loading = false;

apps/admin-gui/src/app/shared/components/dialogs/edit-email-footer-dialog/edit-email-footer-dialog.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class EditEmailFooterDialogComponent implements OnInit {
4444

4545
submit(): void {
4646
this.loading = true;
47-
this.mailAttribute.value = this.mailFooter as unknown as object;
47+
this.mailAttribute.value = this.mailFooter;
4848
if (this.data.groupId) {
4949
this.attributesManager
5050
.setGroupAttribute({ group: this.data.groupId, attribute: this.mailAttribute })
@@ -79,7 +79,7 @@ export class EditEmailFooterDialogComponent implements OnInit {
7979
this.mailAttribute = footer;
8080
this.editAuth = this.mailAttribute.writable;
8181
if (footer.value) {
82-
this.mailFooter = footer.value as unknown as string;
82+
this.mailFooter = footer.value as string;
8383
} else {
8484
this.mailFooter = '';
8585
}
@@ -93,7 +93,7 @@ export class EditEmailFooterDialogComponent implements OnInit {
9393
this.mailAttribute = footer;
9494
this.editAuth = this.mailAttribute.writable;
9595
if (footer.value) {
96-
this.mailFooter = footer.value as unknown as string;
96+
this.mailFooter = footer.value as string;
9797
} else {
9898
this.mailFooter = '';
9999
}

apps/admin-gui/src/app/shared/components/member-overview-groups/member-overview-groups.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export class MemberOverviewGroupsComponent implements OnChanges {
9393
this.groupMembershipDataSource = new MatTableDataSource<string>(['Status', 'Expiration']);
9494
this.expiration = !this.expirationAtt.value
9595
? (this.translate.instant('MEMBER_DETAIL.OVERVIEW.NEVER_EXPIRES') as string)
96-
: (this.expirationAtt.value as unknown as string);
96+
: (this.expirationAtt.value as string);
9797
} else {
9898
this.groupMembershipDataSource = new MatTableDataSource<string>(['Status']);
9999
}

apps/admin-gui/src/app/shared/components/member-overview-membership/member-overview-membership.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export class MemberOverviewMembershipComponent implements OnChanges {
100100
this.voExpirationAtt = attr;
101101
this.voExpiration = !attr.value
102102
? (this.translate.instant('MEMBER_DETAIL.OVERVIEW.NEVER_EXPIRES') as string)
103-
: (attr.value as unknown as string);
103+
: (attr.value as string);
104104
this.loading = false;
105105
},
106106
(error: HttpErrorResponse) => {

apps/admin-gui/src/app/shared/components/members-candidates-list/members-candidates-list.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ export class MembersCandidatesListComponent implements OnChanges, AfterViewInit
201201
}
202202
}
203203
if (email?.value != null) {
204-
return (email.value as unknown as string).replace(',', ' ');
204+
return (email.value as string).replace(',', ' ');
205205
}
206206
return '';
207207
} else {
@@ -242,7 +242,7 @@ export class MembersCandidatesListComponent implements OnChanges, AfterViewInit
242242
}
243243
// parse login namespace
244244
const parsedNamespace: string = userAttribute.friendlyName.substring(16);
245-
logins += parsedNamespace + ': ' + (userAttribute.value as unknown as string);
245+
logins += parsedNamespace + ': ' + (userAttribute.value as string);
246246
}
247247
}
248248
}

apps/admin-gui/src/app/shared/pipes/any-to-string.pipe.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ export class AnyToStringPipe implements PipeTransform {
1111
}
1212
switch (attribute.type) {
1313
case 'java.lang.String': {
14-
return attribute.value as unknown as string;
14+
return attribute.value as string;
1515
}
1616
case 'java.lang.Integer': {
17-
return attribute.value as unknown as string;
17+
return String(attribute.value);
1818
}
1919
case 'java.util.ArrayList': {
2020
return this.whenValueIsArray(attribute.value as string[]);
@@ -23,10 +23,10 @@ export class AnyToStringPipe implements PipeTransform {
2323
return this.whenValueIsMap(attribute.value as Map<string, string>);
2424
}
2525
case 'java.lang.Boolean': {
26-
return attribute.value as unknown as string;
26+
return String(attribute.value);
2727
}
2828
default: {
29-
return attribute.value as unknown as string;
29+
return String(attribute.value);
3030
}
3131
}
3232
}

apps/admin-gui/src/app/vos/components/application-detail/application-detail.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export class ApplicationDetailComponent implements OnInit {
7070
const preferredMail = user.userAttributes.find(
7171
(att) => att.friendlyName === 'preferredMail'
7272
);
73-
this.userMail = (preferredMail?.value as unknown as string) ?? '';
73+
this.userMail = preferredMail?.value as string;
7474
this.setAuthRights();
7575
this.loading = false;
7676
});

apps/admin-gui/src/app/vos/pages/member-detail-page/member-overview/member-overview.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,15 @@ export class MemberOverviewComponent implements OnInit {
151151
if (this.member.memberAttributes !== null) {
152152
this.member.memberAttributes.forEach((att) => {
153153
if (this.attributeNames.includes(att.friendlyName)) {
154-
this.attributes.set(att.friendlyName, [att.displayName, att.value as unknown as string]);
154+
this.attributes.set(att.friendlyName, [att.displayName, att.value as string]);
155155
}
156156
});
157157
}
158158

159159
if (this.member.userAttributes !== null) {
160160
this.member.userAttributes.forEach((att) => {
161161
if (this.attributeNames.includes(att.friendlyName)) {
162-
this.attributes.set(att.friendlyName, [att.displayName, att.value as unknown as string]);
162+
this.attributes.set(att.friendlyName, [att.displayName, att.value as string]);
163163
}
164164
});
165165
}

apps/publications/src/app/components/authors-list/authors-list.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class AuthorsListComponent implements AfterViewInit, OnChanges {
134134
if (data.attributes) {
135135
data.attributes.forEach((attr) => {
136136
if (attr.friendlyName === nameOfAttribute) {
137-
attribute = attr.value as unknown as string;
137+
attribute = attr.value as string;
138138
}
139139
});
140140
}

apps/publications/src/app/pages/create-publication-page/create-single-publication-page/create-single-publication-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export class CreateSinglePublicationPageComponent implements OnInit {
137137
(user) => {
138138
const mailAtt = user.userAttributes.filter((att) => att.friendlyName === 'preferredMail');
139139
if (mailAtt.length !== 0) {
140-
publicationInput.publication.createdBy = mailAtt[0].value as unknown as string;
140+
publicationInput.publication.createdBy = mailAtt[0].value as string;
141141
}
142142

143143
this.cabinetService.createPublication(publicationInput).subscribe(

apps/user-profile/src/app/app.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export class AppComponent implements OnInit, AfterViewInit {
7575
.getUserAttributes(this.store.getPerunPrincipal().userId)
7676
.subscribe((atts) => {
7777
const userPrefLang = atts.find((elem) => elem.friendlyName === 'preferredLanguage');
78-
const userLang = (userPrefLang?.value as unknown as string) ?? null;
78+
const userLang = (userPrefLang?.value as string) ?? null;
7979

8080
const prefLang = this.preferredLangService.getPreferredLanguage(userLang);
8181
this.translateService.use(prefLang);

apps/user-profile/src/app/components/dialogs/add-auth-img-dialog/add-auth-img-dialog.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class AddAuthImgDialogComponent implements OnInit {
3434
ngOnInit(): void {
3535
this.theme = this.data.theme;
3636
this.attribute = this.data.attribute;
37-
this.newImage = this.attribute.value as unknown as string;
37+
this.newImage = this.attribute.value as string;
3838
}
3939

4040
handleInputChange(e: InputEvent): void {
@@ -98,7 +98,7 @@ export class AddAuthImgDialogComponent implements OnInit {
9898
}
9999

100100
onAdd(): void {
101-
this.attribute.value = this.newImage as unknown as object;
101+
this.attribute.value = this.newImage;
102102
this.attributesManagerService
103103
.setUserAttribute({
104104
attribute: this.attribute,

apps/user-profile/src/app/components/dialogs/add-ssh-dialog/add-ssh-dialog.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export class AddSshDialogComponent implements OnInit {
5454
}
5555

5656
onSubmit(): void {
57-
const keys: string[] = (this.data.attribute?.value as unknown as string[]) ?? [];
57+
const keys: string[] = (this.data.attribute?.value as string[]) ?? [];
5858
const ssh = this.sshControl.value as string;
5959
if (!keys.includes(ssh)) {
6060
keys.push(ssh);

apps/user-profile/src/app/components/dialogs/add-unix-group-dialog/add-unix-group-dialog.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class AddUnixGroupDialogComponent implements OnInit {
4242
`urn:perun:user:attribute-def:def:preferredUnixGroupName-namespace:${this.data.namespace}`
4343
)
4444
.subscribe((attribute) => {
45-
const groups: string[] = (attribute?.value as unknown as string[]) ?? [];
45+
const groups: string[] = (attribute?.value as string[]) ?? [];
4646
groups.push(this.inputControl.value as string);
4747
attribute.value = groups;
4848

apps/user-profile/src/app/components/dialogs/remove-string-value-dialog/remove-string-value-dialog.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ export class RemoveStringValueDialogComponent implements OnInit {
4444
onSubmit(): void {
4545
this.loading = true;
4646
if (this.data.doNotShowValues) {
47-
this.data.attribute.value = '' as unknown as object;
47+
this.data.attribute.value = '';
4848
} else {
49-
let values: string[] = (this.data.attribute?.value as unknown as string[]) ?? [];
49+
let values: string[] = (this.data.attribute?.value as string[]) ?? [];
5050
if (this.data.valueIndex !== undefined) {
5151
values.splice(this.data.valueIndex, 1);
5252
} else {

apps/user-profile/src/app/components/membership-list/membership-list.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export class MembershipListComponent implements OnChanges, AfterViewInit {
6262
case 'description':
6363
return 'description' in data.entity ? data.entity.description : '';
6464
case 'expirationAttribute':
65-
return (data?.expirationAttribute?.value as unknown as string) ?? 'never';
65+
return (data?.expirationAttribute?.value as string) ?? 'never';
6666
default:
6767
return '';
6868
}

apps/user-profile/src/app/pages/identities-page/identities-page.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ export class IdentitiesPageComponent implements OnInit {
6565
ues.userExtSource.id,
6666
'urn:perun:ues:attribute-def:def:sourceIdPName'
6767
)
68-
.subscribe((att) => {
69-
if (att?.value) {
70-
ues.userExtSource.extSource.name = att.value as unknown as string;
68+
.subscribe((sourceName) => {
69+
if (sourceName?.value) {
70+
ues.userExtSource.extSource.name = sourceName.value as string;
7171
count--;
7272
this.loading = count !== 0;
7373
this.addToList(ues);
@@ -77,10 +77,10 @@ export class IdentitiesPageComponent implements OnInit {
7777
ues.userExtSource.id,
7878
'urn:perun:ues:attribute-def:def:IdPOrganizationName'
7979
)
80-
.subscribe((att2) => {
80+
.subscribe((orgName) => {
8181
count--;
82-
if (att2?.value) {
83-
ues.userExtSource.extSource.name = att2.value as unknown as string;
82+
if (orgName?.value) {
83+
ues.userExtSource.extSource.name = orgName.value as string;
8484
}
8585
this.loading = count !== 0;
8686
this.addToList(ues);

apps/user-profile/src/app/pages/profile-page/profile-page.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,20 +120,20 @@ export class ProfilePageComponent implements OnInit {
120120
const emailAttribute = richUser.userAttributes.find(
121121
(att) => att.friendlyName === 'preferredMail'
122122
);
123-
this.email = emailAttribute.value as unknown as string;
123+
this.email = (emailAttribute?.value as string) ?? '-';
124124

125125
this.languageAttribute = richUser.userAttributes.find(
126126
(att) => att.friendlyName === 'preferredLanguage'
127127
);
128-
const userLang = (this.languageAttribute?.value as unknown as string) ?? null;
128+
const userLang = (this.languageAttribute?.value as string) ?? null;
129129
const prefLang = this.preferredLangService.getPreferredLanguage(userLang);
130130
this.translateService.use(prefLang);
131131
this.currentLang = prefLang;
132132

133133
this.timezoneAttribute = richUser.userAttributes.find(
134134
(att) => att.friendlyName === 'timezone'
135135
);
136-
this.currentTimezone = (this.timezoneAttribute?.value as unknown as string) ?? '-';
136+
this.currentTimezone = (this.timezoneAttribute?.value as string) ?? '-';
137137

138138
const additionalAttributesSpecs: ProfileAttribute[] = this.storeService.get(
139139
'profile_page_attributes'
@@ -183,7 +183,7 @@ export class ProfilePageComponent implements OnInit {
183183
}
184184

185185
setLanguage(): void {
186-
this.languageAttribute.value = this.currentLang as unknown as object;
186+
this.languageAttribute.value = this.currentLang;
187187
this.attributesManagerService
188188
.setUserAttribute({
189189
user: this.userId,
@@ -214,7 +214,7 @@ export class ProfilePageComponent implements OnInit {
214214
}
215215

216216
setTimeZone(): void {
217-
this.timezoneAttribute.value = this.currentTimezone as unknown as object;
217+
this.timezoneAttribute.value = this.currentTimezone;
218218
this.attributesManagerService
219219
.setUserAttribute({
220220
user: this.userId,
@@ -243,7 +243,7 @@ export class ProfilePageComponent implements OnInit {
243243
this.attributesManagerService
244244
.getUserAttributeByName(this.userId, 'urn:perun:user:attribute-def:def:preferredMail')
245245
.subscribe((attribute) => {
246-
this.email = attribute.value as unknown as string;
246+
this.email = (attribute?.value as string) ?? '-';
247247
});
248248
}
249249

apps/user-profile/src/app/pages/settings-page/settings-authorization/settings-authentication.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ export class SettingsAuthenticationComponent implements OnInit, AfterViewInit {
173173
});
174174
} else {
175175
this.imgAtt = attr;
176-
this.imageSrc = this.imgAtt.value as unknown as string;
176+
this.imageSrc = this.imgAtt.value as string;
177177
}
178178
this.loadingImg = false;
179179
},

apps/user-profile/src/app/pages/settings-page/settings-mailing-lists/settings-mailing-lists.component.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,7 @@ export class SettingsMailingListsComponent implements OnInit, OnDestroy {
138138
const attribute = resAtts.find(
139139
(att) => att.friendlyName === 'optOutMailingList'
140140
);
141-
if (
142-
attribute &&
143-
!(disableOptOut && (disableOptOut.value as unknown as string) === 'true')
144-
) {
141+
if (attribute && !((disableOptOut?.value as string) === 'true')) {
145142
this.optOuts.push({
146143
resource: resource.id,
147144
member: member.id,
@@ -169,7 +166,7 @@ export class SettingsMailingListsComponent implements OnInit, OnDestroy {
169166

170167
unsubscribe(): void {
171168
const originalState = String(this.optOuts[this.index].attribute.value);
172-
this.optOuts[this.index].attribute.value = 'true' as unknown as object;
169+
this.optOuts[this.index].attribute.value = 'true';
173170
this.attributesManagerService.setMemberResourceAttribute(this.optOuts[this.index]).subscribe(
174171
() => {
175172
this.notificator.showSuccess(

apps/user-profile/src/app/pipes/validate-expiration.pipe.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ import { Attribute } from '@perun-web-apps/perun/openapi';
77
})
88
export class ValidateExpirationPipe implements PipeTransform {
99
transform(expirationAttribute: Attribute): string {
10-
return (expirationAttribute?.value as unknown as string) ?? 'never';
10+
return (expirationAttribute?.value as string) ?? 'never';
1111
}
1212
}

libs/perun/components/src/lib/attributes-list/attribute-value/attribute-value-integer/attribute-value-integer.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class AttributeValueIntegerComponent implements OnInit {
2929
const config = getDefaultDialogConfig();
3030
config.width = '350px';
3131
config.data = {
32-
value: attribute.value as unknown as string,
32+
value: attribute.value as string,
3333
title: attribute.displayName,
3434
};
3535
this.dialog.open(ShowValueDialogComponent, config);

libs/perun/components/src/lib/attributes-list/attribute-value/attribute-value-map/attribute-value-map.component.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ export class AttributeValueMapComponent implements OnInit {
2424

2525
ngOnInit(): void {
2626
if (this.attribute.value) {
27-
const map = this.attribute.value as Map<string, string>;
27+
const map = new Map<string, string>(
28+
Object.entries(this.attribute.value as { [s: string]: string })
29+
);
2830
for (const [key, value] of map.entries()) {
2931
this.keys.push(key);
3032
this.values.push(value);

libs/perun/components/src/lib/attributes-list/attribute-value/attribute-value-string/attribute-value-string.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class AttributeValueStringComponent implements OnInit {
1818
constructor(private dialog: MatDialog) {}
1919

2020
ngOnInit(): void {
21-
this.value = this.attribute.value as unknown as string;
21+
this.value = this.attribute.value as string;
2222
if (!this.readonly) {
2323
this.readonly = isVirtualAttribute(this.attribute);
2424
}

libs/perun/components/src/lib/groups-list/groups-list.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,6 @@ export class GroupsListComponent implements AfterViewInit, OnChanges {
428428

429429
getStatusAttribute(grp: RichGroup): string {
430430
const filter = grp.attributes.find((att) => att.baseFriendlyName === 'groupStatus');
431-
return filter != null ? (filter.value as unknown as string) : '';
431+
return filter !== null ? (filter.value as string) : '';
432432
}
433433
}

libs/perun/components/src/lib/user-ext-sources-list/user-ext-sources-list.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class UserExtSourcesListComponent implements OnInit, OnChanges {
5555
return data.userExtSource.id.toString();
5656
case 'mail': {
5757
const attribute = data.attributes.find((att) => att.friendlyName === 'mail');
58-
return attribute ? (attribute.value as unknown as string) : 'N/A';
58+
return attribute ? (attribute.value as string) : 'N/A';
5959
}
6060
case 'extSourceName':
6161
return data.userExtSource.extSource.name;

libs/perun/dialogs/src/lib/change-group-expiration-dialog/change-group-expiration-dialog.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export class ChangeGroupExpirationDialogComponent implements OnInit {
6868
}
6969

7070
this.expirationAttr = this.data.expirationAttr;
71-
this.currentExpiration = (this.expirationAttr?.value as unknown as string) ?? 'never';
71+
this.currentExpiration = (this.expirationAttr?.value as string) ?? 'never';
7272
this.newExpiration = this.currentExpiration;
7373

7474
if (this.data.statusChanged) {
@@ -118,7 +118,7 @@ export class ChangeGroupExpirationDialogComponent implements OnInit {
118118
() => (this.loading = false)
119119
);
120120
} else {
121-
this.expirationAttr.value = newExp === 'never' ? null : (newExp as unknown as object);
121+
this.expirationAttr.value = newExp === 'never' ? null : newExp;
122122

123123
this.attributesManagerService
124124
.setMemberGroupAttributes({

0 commit comments

Comments
 (0)