Page 1 of 1

[Opgelost] beveiligd gedeelte

Posted: Wed Sep 17, 2008 8:01 pm
by iStevo
Ik wil graag een beveiligd gedeelte maken.
Nu weet ik ondertussen dat ik dit kan doen met Frontenduser en dat is me in het verleden reeds gelukt.

Ik heb ondertussen al 2 groepen aangemaakt dus dat is ook geen probleem.
Ik zou echter graag hebben dat de personen die inloggen enkel de pagina of pagina's kunnen zien waarop ze toegang hebben. Is dit mogelijk??

bvb

Er zijn 3 pagina's
- AIS
- Foto's personeel
- Tarieven

Ik heb geen zaken met foto's personeel dus ik zou in menu enkel volgende willen zien.
-  AIS
-  Tarieven

Voor een andere klant gelden andere regels.

Re: beveiligd gedeelte

Posted: Wed Sep 17, 2008 8:19 pm
by RonnyK
Je zou inderdaad zo kunnen werken, waarbij je dan:
{if $ccuser->memberof('groep1')}
wordt afgevraagd...

Ronny

Re: beveiligd gedeelte

Posted: Fri Sep 19, 2008 1:32 pm
by sn3p
De code moet goed zijn volgens mij, klopt de naam van de groep wel?
Probleren dit eens:

Code: Select all

{if $ccuser->loggedin() && $ccuser->memberof('personeel')}
en als dat niet lukt alleen dit:

Code: Select all

{if $ccuser->loggedin()}
Dit laatste is niet groep afhankelijk maar dan weet je in ieder geval of een user goed is ingelogd.

Re: beveiligd gedeelte

Posted: Mon Sep 22, 2008 12:46 pm
by sn3p
Na het inloggen wordt de "Logout Template" getoond, hier kan je user specefieke data tonen als je wilt, bijvoorbeeld:

Code: Select all

{if $ccuser->loggedin()}
   {$startform}
   <h3>{$prompt_loggedin} {$username}</h3>
   {if $ccuser->memberof('klant')}
      <ul>
         <li><a href="#">Tarieven</a></li>
         <li><a href="#">Wachtijden</a></li>
      </ul>
   {elseif $ccuser->memberof('chauffeur')}
      <ul>
         <li><a href="#">Volgende rit</a></li>
         <li><a href="#">Foto's personeel</a></li>
      </ul>
   {else}
      Informatie voor alle andere groepen.
   {/if}
   <br/>
   <a href="{$url_logout}" title="{$mod->Lang('info_logout')}">{$mod->Lang('logout')}</a><br/>
   <a href="{$url_changesettings}" title="{$mod->Lang('info_changesettings')}">{$mod->Lang('prompt_changesettings')}</a>
   {$endform}
{else}
   U heeft geen toegang tot deze pagina.
{/if}
De links die de persoon te ziet krijgt zijn dan afhankelijk van de groep waarin ze zitten.
Deze links kunnen bijvoorbeeld interne links zijn naar pagina's die wel actief ('Active' aangevinkt) zijn, maar niet zichtbaar ('Show in menu' uitgevinkt). Binnen deze pagina's/template moet je ook zorgen dat de content alleen zichtbaar is voor de juiste users/groups (op dezelfde manier als hierboven), anders kan iedereen er bij als ze de juiste url invoeren via de adresbalk.

Re: beveiligd gedeelte

Posted: Mon Sep 22, 2008 2:30 pm
by sn3p
Dat zou je zo op kunnen lossen:

Code: Select all

{if $ccuser->loggedin()}
   {$startform}
   <h3>{$prompt_loggedin} {$username}</h3>
   {if $ccuser->memberof('klant') && $ccuser->memberof('chauffeur')}
      <strong>Klanten opties:</strong>
      <ul>
         <li><a href="#">Tarieven</a></li>
         <li><a href="#">Wachtijden</a></li>
      </ul>
      <br/>
      <strong>Chauffeur opties:</strong>
      <ul>
         <li><a href="#">Volgende rit</a></li>
         <li><a href="#">Foto's personeel</a></li>
      </ul>
   {elseif $ccuser->memberof('klant')}
      <strong>Chauffeur opties:</strong>
      <ul>
         <li><a href="#">Tarieven</a></li>
         <li><a href="#">Wachtijden</a></li>
      </ul>
   {elseif $ccuser->memberof('chauffeur')}
      <strong>Chauffeur opties:</strong>
      <ul>
         <li><a href="#">Volgende rit</a></li>
         <li><a href="#">Foto's personeel</a></li>
      </ul>
   {else}
      Informatie voor alle andere groepen.
   {/if}
   <br/>
   <a href="{$url_logout}" title="{$mod->Lang('info_logout')}">{$mod->Lang('logout')}</a><br/>
   <a href="{$url_changesettings}" title="{$mod->Lang('info_changesettings')}">{$mod->Lang('prompt_changesettings')}</a>
   {$endform}
{else}
   U heeft geen toegang tot deze pagina.
{/if}

Re: beveiligd gedeelte

Posted: Mon Sep 22, 2008 5:23 pm
by RonnyK
Of gewoon een {if} afvraging per groep....

waardoor je het menu per groep weergeeft. Bij een gebruiker die in 2 groepen zit, krijgt deze beide te zien.

Door in de template de afvraging voor de member-of te doen, zorg je ervoor dat enkel wanneer iemand die ingelogd is, de pagina te zien krijgt.

Ronny

Re: beveiligd gedeelte

Posted: Tue Sep 23, 2008 1:48 am
by sn3p
Inderdaad Ronny, niet bij stil gestaan.
De code is dan ongeveer als volgt:

Code: Select all

{if $ccuser->loggedin()}
   {$startform}
   <h3>{$prompt_loggedin} {$username}</h3>
   {if $ccuser->memberof('klant')}
      <strong>Chauffeur opties:</strong>
      <ul>
         <li><a href="#">Tarieven</a></li>
         <li><a href="#">Wachtijden</a></li>
      </ul>
      <br/>
   {/if}
   {if $ccuser->memberof('chauffeur')}
      <strong>Chauffeur opties:</strong>
      <ul>
         <li><a href="#">Volgende rit</a></li>
         <li><a href="#">Foto's personeel</a></li>
      </ul>
      <br/>
   {/if}
   <a href="{$url_logout}" title="{$mod->Lang('info_logout')}">{$mod->Lang('logout')}</a><br/>
   <a href="{$url_changesettings}" title="{$mod->Lang('info_changesettings')}">{$mod->Lang('prompt_changesettings')}</a>
   {$endform}
{else}
   U heeft geen toegang tot deze pagina.
{/if}
Als een user in beide groepen zit krijgt deze voor beide groepen de content te zien.

Re: [Opgelost] beveiligd gedeelte

Posted: Tue Sep 23, 2008 5:53 pm
by RonnyK
Ik ben bezig om te kijken of het nog eenvoudiger kan met de laatste versies....

In de Template, heb ik {content} vervangen, door...
        {cms_module module=CustomContent}
        {if $ccuser->memberof($content_obj->GetPropertyValue('extra1')) ||$content_obj->GetPropertyValue('extra1')==''}
        {title}
        {content}
        {else}
        {global_content name='noaccess'}
        {/if}
zodat een pagina enkel wordt getoond, als de gebruiker tot de groep behoord die in de "Extra page attribute 1" staat, of dat het veld geen waarde heeft zodat iedereen het mag zien.

In de menutemplate heb ik dan de laatste {else} vervangen door
{elseif $ccuser->memberof($node->extra1) || $node->extra1==''}
zodat de link enkel wordt getoond als de gebruiker behoord tot de groep die in de pagina staat.

Dit is nog niet definitief..... maar het lijkt een eenvoudige werkwijze....

Ronny

Re: [Opgelost] beveiligd gedeelte

Posted: Fri Sep 26, 2008 9:17 am
by RonnyK
Ik heb het werkend op http://ronnyk.dyndns.org/cmsms1svn/ waarmee je kunt inloggen via ronnyk/ronnyk
Vervolgens zal een pagina 'Smoelenboek' als laatste pagina in het menu getoond worden.

Ik moet nog even uitzoeken hoe het werkt met Parents, submenus etc... maar dit werkt zo wel, overigens heb ik wel iets meer aangepast aan de menu-template.

Ronny