home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / SMADMIN.JFM < prev    next >
Text File  |  1996-12-11  |  14KB  |  441 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * SmAdmin.jfm  --  Security Administration Form                              *
  4. *                                                                            *
  5. * This form is part of the security administration prebuilt business         *
  6. * solution. This is the main adminstration form. It allows you to define     *
  7. * users, groups resources and policies. Your applications can then be        *
  8. * secured. See the Phone Book application for an example of using the        *
  9. * security system.                                                           *
  10. *                                                                            *
  11. * Dependencies:  secur21.gif                                                 *
  12. *                homepg31.gif                                                *
  13. *                apps\shared\controls.cc                                     *
  14. *                                                                            *
  15. * Updated 11/13/96 by IntraBuilder Samples Group                             *
  16. * $Revision:   1.11  $                                                        *
  17. *                                                                            *
  18. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  19. *                                                                            *
  20. \****************************************************************************/
  21. #include "SECURITY.H"
  22. _sys.scripts.load(SM_CLASS_LOCATION + "SECURITY.JS");
  23. // create form reference for this form
  24. var f = new smadminForm();
  25. f.security = new SecurityManagerAdmin();
  26.  
  27. // create security object and login
  28. _sys.scripts.load("smlogin.jfm");
  29. var login = new smloginForm();
  30. login.security = f.security;
  31. login.nextForm = f;
  32. login.open();
  33. return;
  34. // {End Header} Do not remove this comment//
  35. // Generated on 11/13/96
  36. //
  37. var f = new smadminForm();
  38. f.open();
  39. class smadminForm extends SecurityForm from "SMADMIN.JCF" {
  40.    _sys.scripts.load(_sys.env.home() + "APPS\\SHARED\\CONTROLS.CC")
  41.    with (this) {
  42.       preRender = class::Form_preRender;
  43.       onServerLoad = class::Form_onServerLoad;
  44.       color = "fff7c4";
  45.       height = 14.6667;
  46.       left = 0;
  47.       top = 0;
  48.       width = 76;
  49.       title = "Security Administration";
  50.    }
  51.  
  52.  
  53.    with (this.rule1 = new Rule(this)){
  54.       top = 4;
  55.       size = 2;
  56.       right = 74;
  57.       pageno = 0;
  58.    }
  59.  
  60.  
  61.    with (this.rule2 = new Rule(this)){
  62.       top = 13;
  63.       size = 2;
  64.       right = 74;
  65.       pageno = 0;
  66.    }
  67.  
  68.  
  69.    with (this.rule3 = new Rule(this)){
  70.       top = 17.5;
  71.       size = 2;
  72.       right = 74;
  73.       pageno = 0;
  74.    }
  75.  
  76.  
  77.    with (this.userButton = new Button(this)){
  78.       onServerClick = class::userButton_onServerClick;
  79.       top = 4.5;
  80.       width = 14;
  81.       text = "Users";
  82.    }
  83.  
  84.  
  85.    with (this.groupButton = new Button(this)){
  86.       onServerClick = class::groupButton_onServerClick;
  87.       left = 18;
  88.       top = 4.5;
  89.       width = 14;
  90.       text = "Groups";
  91.    }
  92.  
  93.  
  94.    with (this.resourceButton = new Button(this)){
  95.       onServerClick = class::resourceButton_onServerClick;
  96.       left = 36;
  97.       top = 4.5;
  98.       width = 14;
  99.       text = "Resources";
  100.    }
  101.  
  102.  
  103.    with (this.policyButton = new Button(this)){
  104.       onServerClick = class::policyButton_onServerClick;
  105.       left = 54;
  106.       top = 4.5;
  107.       width = 14;
  108.       text = "Policies";
  109.    }
  110.  
  111.  
  112.    with (this.entitySelect = new ListBox(this)){
  113.       height = 5;
  114.       top = 6;
  115.       width = 74;
  116.    }
  117.  
  118.  
  119.    with (this.newButton = new Button(this)){
  120.       onServerClick = class::newButton_onServerClick;
  121.       top = 11.5;
  122.       width = 14;
  123.       text = "Add...";
  124.    }
  125.  
  126.  
  127.    with (this.copyButton = new Button(this)){
  128.       onServerClick = class::copyButton_onServerClick;
  129.       left = 18;
  130.       top = 11.5;
  131.       width = 14;
  132.       text = "Copy...";
  133.    }
  134.  
  135.  
  136.    with (this.updateButton = new Button(this)){
  137.       onServerClick = class::updateButton_onServerClick;
  138.       left = 36;
  139.       top = 11.5;
  140.       width = 14;
  141.       text = "Update...";
  142.    }
  143.  
  144.  
  145.    with (this.deleteButton = new Button(this)){
  146.       onServerClick = class::deleteButton_onServerClick;
  147.       left = 54;
  148.       top = 11.5;
  149.       width = 14;
  150.       text = "Delete";
  151.    }
  152.  
  153.  
  154.    with (this.HomePageLinkImage = new Image(this)){
  155.       onImageClick = class::link_to_home_page;
  156.       height = 3.4167;
  157.       top = 13.5;
  158.       width = 10.25;
  159.       dataSource = "filename HOMEPG31.GIF";
  160.       alignment = 4;
  161.       pageno = 0;
  162.    }
  163.  
  164.  
  165.    with (this.HomePageLinkHTML = new HTML(this)){
  166.       height = 1;
  167.       left = 12;
  168.       top = 13.5;
  169.       width = 62;
  170.       color = "black";
  171.       text = "<A HREF='/ibapps/index.htm'>Return to Home Page</A>";
  172.       pageno = 0;
  173.    }
  174.  
  175.  
  176.    with (this.failedHTML = new HTML(this)){
  177.       height = 4;
  178.       top = 5;
  179.       width = 74;
  180.       color = "black";
  181.       text = "Security Manager Administration failed to load. Notify the system administrator.";
  182.       pageno = 2;
  183.    }
  184.  
  185.  
  186.    with (this.backButton2 = new Button(this)){
  187.       onServerClick = {;this.form.pageno=1};
  188.       top = 10;
  189.       width = 10.5;
  190.       text = "Back";
  191.       pageno = 2;
  192.    }
  193.  
  194.  
  195.    with (this.GeneratedHTML1 = new GeneratedHTML(this)){
  196.       height = 1;
  197.       top = 18;
  198.       width = 74;
  199.       pageno = 0;
  200.    }
  201.  
  202.  
  203.    with (this.whichEntity = new Hidden(this)){
  204.       left = 20;
  205.       top = 2;
  206.       value = 0;
  207.    }
  208.  
  209.  
  210.    function Form_onServerLoad()
  211.    {
  212.    //      this.whichEntity.value = 0;   // 0 = user
  213.       this.fillSelect(this);
  214.    }
  215.  
  216.    function Form_preRender()
  217.    {
  218.       this.fillSelect(this);
  219.    }
  220.  
  221.    function fillSelect(formRef)
  222.    {
  223.       var form = formRef;
  224.       form.entityArray = new Array();
  225.       var tmpArray = new AssocArray();
  226.       try {
  227.          // get the assoc array depending on which entity is selected
  228.          switch (parseInt(form.whichEntity.value)) {
  229.          case 0:    // user
  230.             tmpArray = form.security.getAllUsers();
  231.             break;
  232.          case 1:    // group
  233.             tmpArray = form.security.getAllGroups();
  234.             break;
  235.          case 2:    // resource
  236.             tmpArray = form.security.getAllResources();
  237.             break;
  238.          default:   // policy
  239.             tmpArray = form.security.getAllPolicies();
  240.             break;
  241.          }
  242.          // fill the entityArray with the contents of the AssocArray
  243.          var entity = "";
  244.          for (var i = 0; i<tmpArray.count(); i++) {
  245.             entity = (i==0) ? tmpArray.firstKey : tmpArray.nextKey(entity);
  246.             form.entityArray.add(entity + " - " + 
  247.                             ((tmpArray[entity]==null) ? "" : tmpArray[entity]));
  248.          }
  249.          // sort the resulting array
  250.          form.entityArray.sort();
  251.          // assign array to the select control
  252.          form.entitySelect.options = "array form.entityArray";
  253.       }
  254.       catch (Exception e) {
  255.          form.failedHTML.text = "Error loading security information: " 
  256.                                 + e.message + " (" + e.code + ")";
  257.          form.backButton2.visible = false;
  258.          form.pageno = 2;
  259.       }
  260.    }
  261.  
  262.    function newButton_onServerClick()
  263.    {
  264.       // store entity name
  265.       var entityName = false;
  266.       var entityObj  = null;
  267.       // load the appropriate administration form
  268.       switch (parseInt(this.form.whichEntity.value)) {
  269.       case 0:    // user
  270.          entityObj = this.form.security.getUserObject(entityName);
  271.          _sys.scripts.load("smuadmin.jfm");
  272.          var f = new smuadminForm();
  273.          break;
  274.       case 1:    // group
  275.          entityObj = this.form.security.getGroupObject(entityName);
  276.          _sys.scripts.load("smgadmin.jfm");
  277.          var f = new smgadminForm();
  278.          break;
  279.       case 2:    // resource
  280.          entityObj = this.form.security.getResourceObject(entityName);
  281.          _sys.scripts.load("smradmin.jfm");
  282.          var f = new smradminForm();
  283.          break;
  284.       default:    // policy
  285.          entityObj = this.form.security.getPolicyObject(entityName);
  286.          _sys.scripts.load("smpadmin.jfm");
  287.          var f = new smpadminForm();
  288.          break;
  289.       }
  290.       // set the necessary properties
  291.       f.copyEntity  = false;
  292.       f.entity      = entityObj;
  293.       f.security    = this.form.security;
  294.       f.callingForm = this.form;
  295.       f.open();
  296.    }
  297.  
  298.    function copyButton_onServerClick()
  299.    {
  300.       // store entity name
  301.       var entityName = this.form.entitySelect.value;
  302.       entityName = entityName.substring(0, entityName.indexOf(" -"));
  303.       if (entityName.length > 0) {
  304.          var entityObj  = null;
  305.          // load the appropriate administration form
  306.          switch (parseInt(this.form.whichEntity.value)) {
  307.          case 0:    // user
  308.             entityObj = this.form.security.getUserObject(entityName);
  309.             _sys.scripts.load("smuadmin.jfm");
  310.             var f = new smuadminForm();
  311.             break;
  312.           case 1:    // group
  313.             entityObj = this.form.security.getGroupObject(entityName);
  314.             _sys.scripts.load("smgadmin.jfm");
  315.             var f = new smgadminForm();
  316.             break;
  317.          case 2:    // resource
  318.             entityObj = this.form.security.getResourceObject(entityName);
  319.             _sys.scripts.load("smradmin.jfm");
  320.             var f = new smradminForm();
  321.             break;
  322.          default:    // policy
  323.             entityObj = this.form.security.getPolicyObject(entityName);
  324.             _sys.scripts.load("smpadmin.jfm");
  325.             var f = new smpadminForm();
  326.             break;
  327.          }
  328.          // set the necessary properties
  329.          f.copyEntity  = true;
  330.          f.entity      = entityObj;
  331.          f.security    = this.form.security;
  332.          f.callingForm = this.form;
  333.          f.open();
  334.       }
  335.    }
  336.  
  337.    function updateButton_onServerClick()
  338.    {
  339.       // store entity name
  340.       var entityName = this.form.entitySelect.value;
  341.       entityName = entityName.substring(0, entityName.indexOf(" -"));
  342.    _sys.scriptOut.writeln(":" + entityName + ":");
  343.       if (entityName.length > 0) {
  344.          var entityObj  = null;
  345.          // load the appropriate administration form
  346.          switch (parseInt(this.form.whichEntity.value)) {
  347.          case 0:    // user
  348.             entityObj = this.form.security.getUserObject(entityName);
  349.             _sys.scripts.load("smuadmin.jfm");
  350.             var f = new smuadminForm();
  351.             break;
  352.          case 1:    // group
  353.             entityObj = this.form.security.getGroupObject(entityName);
  354.             _sys.scripts.load("smgadmin.jfm");
  355.             var f = new smgadminForm();
  356.             break;
  357.          case 2:    // resource
  358.             entityObj = this.form.security.getResourceObject(entityName);
  359.             _sys.scripts.load("smradmin.jfm");
  360.             var f = new smradminForm();
  361.             break;
  362.          default:    // policy
  363.             entityObj = this.form.security.getPolicyObject(entityName);
  364.             _sys.scripts.load("smpadmin.jfm");
  365.             var f = new smpadminForm();
  366.             break;
  367.          }
  368.          // set the necessary properties
  369.          f.copyEntity  = false;
  370.          f.entity      = entityObj;
  371.          f.security    = this.form.security;
  372.          f.callingForm = this.form;
  373.          f.open();
  374.       }
  375.    }
  376.  
  377.    function deleteButton_onServerClick()
  378.    {
  379.       // store entity name
  380.       var entityName = this.form.entitySelect.value;
  381.       entityName = entityName.substring(0, entityName.indexOf(" -"));
  382.       try {
  383.          // delete the entity
  384.          if (entityName.length > 0) {
  385.             // delete the entity
  386.             switch (parseInt(this.form.whichEntity.value)) {
  387.             case 0:    // user
  388.                this.form.security.deleteUser(entityName);
  389.                break;
  390.             case 1:    // group
  391.                this.form.security.deleteGroup(entityName);
  392.                break;
  393.             case 2:    // resource
  394.                this.form.security.deleteResource(entityName);
  395.                break;
  396.             default:   // policy
  397.                this.form.security.deletePolicy(entityName);
  398.                break;
  399.             }
  400.          }
  401.          // update the list of entities
  402.          this.form.fillSelect(this.form);
  403.       }
  404.       catch (Exception e) {
  405.          this.form.failedHTML.text = "Error during delete: " + e.message + 
  406.                                      " (" + e.code + ")";
  407.          this.form.pageno = 2;
  408.       }
  409.    }
  410.  
  411.    function link_to_home_page()
  412.    {
  413.       location.href="/ibapps/index.htm";
  414.    }
  415.  
  416.    function userButton_onServerClick()
  417.    {
  418.       this.form.whichEntity.value = 0;
  419.       this.form.fillSelect(this.form);
  420.    }
  421.  
  422.    function groupButton_onServerClick()
  423.    {
  424.       this.form.whichEntity.value = 1;
  425.       this.form.fillSelect(this.form);
  426.    }
  427.  
  428.    function resourceButton_onServerClick()
  429.    {
  430.       this.form.whichEntity.value = 2;
  431.       this.form.fillSelect(this.form);
  432.    }
  433.  
  434.    function policyButton_onServerClick()
  435.    {
  436.       this.form.whichEntity.value = 3;
  437.       this.form.fillSelect(this.form);
  438.    }
  439.  
  440. }
  441.