Mean Stack how to check permission in ng-IfIDE for MEAN stack [ MongoDb,Express,AngularJs,NodeJs ]how to solve this mean stack application errorMEAN stack, net::ERR_CONNECTION_REFUSED errorLooking for an Angular2 MEAN StackHow to start adding REST calls in MEAN stackSubdomain handling in MEAN stack appHow to check database collections in MEAN stackMEAN stack file uploadHow to create REST URLs in Mean stack?MEAN with Angular 4 stack folder structure

Writing in a Christian voice

Is there a distance limit for minecart tracks?

Why would five hundred and five same as one?

Started in 1987 vs. Starting in 1987

Strange behavior in TikZ draw command

Why do Radio Buttons not fill the entire outer circle?

Are hand made posters acceptable in Academia?

Mortal danger in mid-grade literature

How to preserve electronics (computers, ipads, phones) for hundreds of years?

Pre-Employment Background Check With Consent For Future Checks

What is the period/term used describe Giuseppe Arcimboldo's style of painting?

Capacitor electron flow

Why didn't Voldemort know what Grindelwald looked like?

Why can't I get pgrep output right to variable on bash script?

What properties make a magic weapon befit a Rogue more than a DEX-based Fighter?

New Order #2: Turn My Way

What (if any) is the reason to buy in small local stores?

Rendered textures different to 3D View

Not hide and seek

PTIJ: Which Dr. Seuss books should one obtain?

Why didn’t Eve recognize the little cockroach as a living organism?

Error in master's thesis, I do not know what to do

A seasonal riddle

Why is implicit conversion not ambiguous for non-primitive types?



Mean Stack how to check permission in ng-If


IDE for MEAN stack [ MongoDb,Express,AngularJs,NodeJs ]how to solve this mean stack application errorMEAN stack, net::ERR_CONNECTION_REFUSED errorLooking for an Angular2 MEAN StackHow to start adding REST calls in MEAN stackSubdomain handling in MEAN stack appHow to check database collections in MEAN stackMEAN stack file uploadHow to create REST URLs in Mean stack?MEAN with Angular 4 stack folder structure













0















Permissions Groupe schema:



mongoose.Schema(
groupename: type: String, required: true, unique: 'Nom du groupe "VALUE", est déja utiliser',
permissions: Array
,


Service:



 getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



view.ts



 getPermissions(ids) 
let permissions : any = [];
this.service.getGroupes(ids)
.subscribe((res) =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
this.permissions = role;
, err =>
console.log(err);
);
return permissions ;



view.html:



<li *ngIf="getPermissions(ids).includes('dashboard')" routerLinkActive="active" class="nav-item">
<a class="nav-link" [routerLink]="['/dashboard']">
<i class="material-icons">bar_chart</i>
<p>Tableau de bord</p>
</a>
</li>


so this is just an example, is there any way to call for getPermissions(ids) from html without getting an infinite loop getting the permissions on init is not an option because sometimes cases i need to loop through multiple users



Edit:+



getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



Edit2:
if there is any other way to:



<li *ngIf="**check if something exist in database**" routerLinkActive="active" class="nav-item">


that would be a solution










share|improve this question
























  • Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

    – Neil Lunn
    Mar 7 at 1:10












  • what is the infinite loop you want to avoid?

    – Haijin
    Mar 7 at 1:35











  • @Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

    – ChiKa LiO
    Mar 7 at 2:09
















0















Permissions Groupe schema:



mongoose.Schema(
groupename: type: String, required: true, unique: 'Nom du groupe "VALUE", est déja utiliser',
permissions: Array
,


Service:



 getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



view.ts



 getPermissions(ids) 
let permissions : any = [];
this.service.getGroupes(ids)
.subscribe((res) =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
this.permissions = role;
, err =>
console.log(err);
);
return permissions ;



view.html:



<li *ngIf="getPermissions(ids).includes('dashboard')" routerLinkActive="active" class="nav-item">
<a class="nav-link" [routerLink]="['/dashboard']">
<i class="material-icons">bar_chart</i>
<p>Tableau de bord</p>
</a>
</li>


so this is just an example, is there any way to call for getPermissions(ids) from html without getting an infinite loop getting the permissions on init is not an option because sometimes cases i need to loop through multiple users



Edit:+



getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



Edit2:
if there is any other way to:



<li *ngIf="**check if something exist in database**" routerLinkActive="active" class="nav-item">


that would be a solution










share|improve this question
























  • Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

    – Neil Lunn
    Mar 7 at 1:10












  • what is the infinite loop you want to avoid?

    – Haijin
    Mar 7 at 1:35











  • @Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

    – ChiKa LiO
    Mar 7 at 2:09














0












0








0








Permissions Groupe schema:



mongoose.Schema(
groupename: type: String, required: true, unique: 'Nom du groupe "VALUE", est déja utiliser',
permissions: Array
,


Service:



 getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



view.ts



 getPermissions(ids) 
let permissions : any = [];
this.service.getGroupes(ids)
.subscribe((res) =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
this.permissions = role;
, err =>
console.log(err);
);
return permissions ;



view.html:



<li *ngIf="getPermissions(ids).includes('dashboard')" routerLinkActive="active" class="nav-item">
<a class="nav-link" [routerLink]="['/dashboard']">
<i class="material-icons">bar_chart</i>
<p>Tableau de bord</p>
</a>
</li>


so this is just an example, is there any way to call for getPermissions(ids) from html without getting an infinite loop getting the permissions on init is not an option because sometimes cases i need to loop through multiple users



Edit:+



getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



Edit2:
if there is any other way to:



<li *ngIf="**check if something exist in database**" routerLinkActive="active" class="nav-item">


that would be a solution










share|improve this question
















Permissions Groupe schema:



mongoose.Schema(
groupename: type: String, required: true, unique: 'Nom du groupe "VALUE", est déja utiliser',
permissions: Array
,


Service:



 getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



view.ts



 getPermissions(ids) 
let permissions : any = [];
this.service.getGroupes(ids)
.subscribe((res) =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
this.permissions = role;
, err =>
console.log(err);
);
return permissions ;



view.html:



<li *ngIf="getPermissions(ids).includes('dashboard')" routerLinkActive="active" class="nav-item">
<a class="nav-link" [routerLink]="['/dashboard']">
<i class="material-icons">bar_chart</i>
<p>Tableau de bord</p>
</a>
</li>


so this is just an example, is there any way to call for getPermissions(ids) from html without getting an infinite loop getting the permissions on init is not an option because sometimes cases i need to loop through multiple users



Edit:+



getGroupes(GroupeIds) 
const headers = new Headers();
headers.append('Content-type', 'application/json');
return this.http.get(this.baseUrl + '/groupes/getgroupes/' + GroupeIds, headers: headers)
.map(res => res.json());



Edit2:
if there is any other way to:



<li *ngIf="**check if something exist in database**" routerLinkActive="active" class="nav-item">


that would be a solution







angular mean-stack






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 7 at 16:46







ChiKa LiO

















asked Mar 7 at 1:06









ChiKa LiOChiKa LiO

6719




6719












  • Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

    – Neil Lunn
    Mar 7 at 1:10












  • what is the infinite loop you want to avoid?

    – Haijin
    Mar 7 at 1:35











  • @Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

    – ChiKa LiO
    Mar 7 at 2:09


















  • Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

    – Neil Lunn
    Mar 7 at 1:10












  • what is the infinite loop you want to avoid?

    – Haijin
    Mar 7 at 1:35











  • @Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

    – ChiKa LiO
    Mar 7 at 2:09

















Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

– Neil Lunn
Mar 7 at 1:10






Please don't "spam tags" when posting. Your question is about "Angular syntax" so that is the only tag required. Tags are related to the content of your question, and not to describe the whole application stack. Just so you are aware of this for future reference.

– Neil Lunn
Mar 7 at 1:10














what is the infinite loop you want to avoid?

– Haijin
Mar 7 at 1:35





what is the infinite loop you want to avoid?

– Haijin
Mar 7 at 1:35













@Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

– ChiKa LiO
Mar 7 at 2:09






@Haijin when i call service.getGroupes(ids) .subscribe((res).. from html

– ChiKa LiO
Mar 7 at 2:09













1 Answer
1






active

oldest

votes


















0














Still not sure about the infinite loop you are talking.



But your getPermissions function has a few things abnormal. this.permissions is referring to a member variable of the class, not the permissions variable inside the function. Also getGroupes is a async function that takes time to finish, and the function will return before that.



I would write like this:



 getPermissions(ids) // return an observable.
return this.service.getGroupes(ids).pipe(
map( res =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
return role;
)
)



And in HTML use a async pipe get the value:



<li *ngIf="(getPermissions(ids) | async).includes('dashboard')" ......





share|improve this answer

























  • well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

    – ChiKa LiO
    Mar 7 at 4:08











  • where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

    – Haijin
    Mar 7 at 4:13











  • getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

    – ChiKa LiO
    Mar 7 at 16:37












  • I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

    – Haijin
    Mar 8 at 1:11












  • sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

    – ChiKa LiO
    Mar 8 at 1:28










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55034556%2fmean-stack-how-to-check-permission-in-ng-if%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Still not sure about the infinite loop you are talking.



But your getPermissions function has a few things abnormal. this.permissions is referring to a member variable of the class, not the permissions variable inside the function. Also getGroupes is a async function that takes time to finish, and the function will return before that.



I would write like this:



 getPermissions(ids) // return an observable.
return this.service.getGroupes(ids).pipe(
map( res =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
return role;
)
)



And in HTML use a async pipe get the value:



<li *ngIf="(getPermissions(ids) | async).includes('dashboard')" ......





share|improve this answer

























  • well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

    – ChiKa LiO
    Mar 7 at 4:08











  • where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

    – Haijin
    Mar 7 at 4:13











  • getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

    – ChiKa LiO
    Mar 7 at 16:37












  • I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

    – Haijin
    Mar 8 at 1:11












  • sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

    – ChiKa LiO
    Mar 8 at 1:28















0














Still not sure about the infinite loop you are talking.



But your getPermissions function has a few things abnormal. this.permissions is referring to a member variable of the class, not the permissions variable inside the function. Also getGroupes is a async function that takes time to finish, and the function will return before that.



I would write like this:



 getPermissions(ids) // return an observable.
return this.service.getGroupes(ids).pipe(
map( res =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
return role;
)
)



And in HTML use a async pipe get the value:



<li *ngIf="(getPermissions(ids) | async).includes('dashboard')" ......





share|improve this answer

























  • well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

    – ChiKa LiO
    Mar 7 at 4:08











  • where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

    – Haijin
    Mar 7 at 4:13











  • getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

    – ChiKa LiO
    Mar 7 at 16:37












  • I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

    – Haijin
    Mar 8 at 1:11












  • sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

    – ChiKa LiO
    Mar 8 at 1:28













0












0








0







Still not sure about the infinite loop you are talking.



But your getPermissions function has a few things abnormal. this.permissions is referring to a member variable of the class, not the permissions variable inside the function. Also getGroupes is a async function that takes time to finish, and the function will return before that.



I would write like this:



 getPermissions(ids) // return an observable.
return this.service.getGroupes(ids).pipe(
map( res =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
return role;
)
)



And in HTML use a async pipe get the value:



<li *ngIf="(getPermissions(ids) | async).includes('dashboard')" ......





share|improve this answer















Still not sure about the infinite loop you are talking.



But your getPermissions function has a few things abnormal. this.permissions is referring to a member variable of the class, not the permissions variable inside the function. Also getGroupes is a async function that takes time to finish, and the function will return before that.



I would write like this:



 getPermissions(ids) // return an observable.
return this.service.getGroupes(ids).pipe(
map( res =>
permessionId = res ;
let role: any = [];
permessionId.forEach( (groupe) =>
role = role.concat(groupe.permissions);
);
return role;
)
)



And in HTML use a async pipe get the value:



<li *ngIf="(getPermissions(ids) | async).includes('dashboard')" ......






share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 7 at 3:00

























answered Mar 7 at 2:42









HaijinHaijin

1,1911619




1,1911619












  • well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

    – ChiKa LiO
    Mar 7 at 4:08











  • where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

    – Haijin
    Mar 7 at 4:13











  • getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

    – ChiKa LiO
    Mar 7 at 16:37












  • I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

    – Haijin
    Mar 8 at 1:11












  • sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

    – ChiKa LiO
    Mar 8 at 1:28

















  • well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

    – ChiKa LiO
    Mar 7 at 4:08











  • where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

    – Haijin
    Mar 7 at 4:13











  • getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

    – ChiKa LiO
    Mar 7 at 16:37












  • I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

    – Haijin
    Mar 8 at 1:11












  • sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

    – ChiKa LiO
    Mar 8 at 1:28
















well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

– ChiKa LiO
Mar 7 at 4:08





well thank you for your answer, this gives me an observable so i'd need to subscribe wich get us to the same problem, i added my getGroupes function

– ChiKa LiO
Mar 7 at 4:08













where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

– Haijin
Mar 7 at 4:13





where is the infinite loop? can you add a console.log there so I know it will be called infinitely?

– Haijin
Mar 7 at 4:13













getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

– ChiKa LiO
Mar 7 at 16:37






getPermissions(ids) returns an observable so i need to subscribe: getgroupes() this.service.getUserPermissions() .subscribe(res => return this.test = res; ) and calling this function from the html gives an infinite Cannot read property 'includes' of null

– ChiKa LiO
Mar 7 at 16:37














I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

– Haijin
Mar 8 at 1:11






I am confused. what is this getgroupes function you just put here, and why different from the one in your question? I understand the only http request is sent in getGroups function in your question, getPermission calls getGroups function and do some calculations. Then in your HTML you can use a async pipe so you do not need to explicitly subscribe to it.

– Haijin
Mar 8 at 1:11














sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

– ChiKa LiO
Mar 8 at 1:28





sorry i'm just new to all of this.. i don't explicitly subscribe to it because the result is an observable, and if you can read Edit 2 and give me an example yourself would be better i guess

– ChiKa LiO
Mar 8 at 1:28



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55034556%2fmean-stack-how-to-check-permission-in-ng-if%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

1928 у кіно

Захаров Федір Захарович

Ель Греко