cancel
Showing results for 
Search instead for 
Did you mean: 

Create Site based on group.

michaelc
Champ on-the-rise
Champ on-the-rise
I wanted to allow creating of a site base on the user being in a group ( That is not admin )
So I modified Header.get.js


   // extend to get all the groups a person is assocated to
   if (!user.isGuest)
   {  
      var result = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "?groups=true");

     
      if (result.status == 200)
         {
          var i;         
        
         // Create javascript objects from the server response
         // This is the User and it also contains all groups.
          var userValue = eval('(' + result + ')');
       
        
          if (userValue.groups.length != 0)
             {
                for (i = 0; i < userValue.groups.length; i++)
                {
                     if (userValue.groups[i].itemName == "GROUP_CreateSiteAdministrator") createSite = true;
                }
             }           

         }
   }

model.createSite = createSite;

Then modified header.get.ftl

         <#if createSite>
         <ul class="create-site-menuitem">
            <li>
               <a href="#" onclick="thisHeader.showCreateSite(); return false;">${msg("header.sites.createSite")}</a>
            </li>
         </ul>
         </#if>

this worked for the header, but how can I pass this to the dashlet ?
I got it working by doing the same in the dashlet, but it seems as there should be another way.

my.sites.get.js


// extend to get all the groups a person is assocated to
   if (!user.isGuest)
   {  
      var result = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "?groups=true");

     
      if (result.status == 200)
         {
          var i;         
        
         // Create javascript objects from the server response
         // This is the User and it also contains all groups.
          var userValue = eval('(' + result + ')');
       
        
          if (userValue.groups.length != 0)
             {
                for (i = 0; i < userValue.groups.length; i++)
                {
                     if (userValue.groups[i].itemName == "GROUP_CreateSiteAdministrator") createSite = true;
                }
             }           

         }
   }

1 REPLY 1

ottopodo
Champ in-the-making
Champ in-the-making
Simply add the same javascript code to the js of each dashlet.