Skip to Content
avatar image
Former Member

Table name and required for User access on folder ?

Can someone tell me what is the table name and column name which has information on what kind of access the user has ( View , Schedule , Etc) on Particular application folder ?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Nov 30, 2017 at 10:50 AM

    You can Achieve this using Java SDK.

    This method iterates through all available rights that can be set on a report, and checks whether a particular user has these rights granted. The results are formatted in an HTML table and returned as a String object.

    String checkRights(IEnterpriseSession enterpriseSession, IUser user) throws SDKException, IOException
    {       
      IInfoStore infostore = (IInfoStore)enterpriseSession.getService("InfoStore"); 
      String resultString = "Rights for user '" + user.getTitle() + "' for 'World Sales Report'.<p>";
           
      IInfoObjects reports = infostore.query("Select SI_ID From CI_INFOOBJECTS Where SI_NAME='World Sales Report' And SI_INSTANCE=0");
      IInfoObject report = (IInfoObject)reports.get(0);
    
      ISecurityInfo2 securityInfo = report.getSecurityInfo2();
            
      IPluginBasedRightIDs pluginBasedRightIDs = securityInfo.getKnownRightsByPlugin();
      Map pluginRights = pluginBasedRightIDs.getPluginRights();
      Iterator it = pluginRights.keySet().iterator();
            
      while (it.hasNext())
      {
        Object progID = it.next();
        Set rightIDs = (java.util.Set)pluginRights.get(progID);
        Iterator rIt = rightIDs.iterator();
                
        resultString += "<p><p><b>Plugin Type: </b>" + progID.toString() + "<br>";
        resultString += "<table><tr><td><b>Right</b></td><td><b>Is granted</b></td></tr>";
        while (rIt.hasNext())
        {
          IRightID key = (IRightID)rIt.next();
          RightDescriptor rightToCheck = new RightDescriptor(key.getBaseID(), key.getRightPluginKind(), key.isOwner(), CeSecurityOptions.RightScope.CURRENT_OBJECT, progID);
          boolean hasRight = securityInfo.checkRight(rightToCheck, user.getID(), true);
          resultString += "<tr><td>" + key.toString()+ "</td><td>" + hasRight + "</td></tr>";
        }
        resultString += "</table>";
      }     
      return resultString;
    }
    
    
    Add comment
    10|10000 characters needed characters exceeded

  • Nov 30, 2017 at 10:52 AM

    Rights Info will be stored as SecurityInfo in each object.

    -

    Bharaht

    Add comment
    10|10000 characters needed characters exceeded