************************************************** *** MCRUD PHASE ACCESS RULES FOR OT4OMT 4.0 *** ************************************************** IMPORTANT NOTICE IMPORTANT NOTICE IMPORTANT NOTICE IMPORTANT NOTICE IMPORTAN NOT This piece of TCL will not 'correct' or 'change' the access rights on existing Systems and Diagrams in an existing project. Applying this TCL in an existing project with existing Systems and files will make access for the current users of that project very complicated. This TCL is meant to adopt on an EMPTY project, only with the phases created. !!!WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING!!! Please also note that this is currently unsupported and uncertified software. In no event shall Cadre be liable for (I) any damages caused by licensee's failure to perform its responsibilities or (II) any incidental, special, indirect, exemplary or consequential damages of licensee whatsoever, including but not limited to loss of programs or data, or lost profits, even if Cadre has been advised, knew, or should have known of the possibility of such damages and regardless of the form of action in which such damages are sought. Further more all noted Disclaimers of warranty and limitations of liability are in place as included in the Cadre's Software Support Agreement with licensee. !!!WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING!!! END IMPORTANT NOTICE END IMPORTANT NOTICE END IMPORTANT NOTICE END IMPORTANT NOT INTRODUCTION The TCL in this directory is made to make a default setup of users, roles and access rights, directly related to the default setup of the four phases Analysis, SystemDesign, ObjectDesign and Implementation of specific OMT 4.0 project via M C R U D rights. PHASE SETUP The TCL will also work for a different phase setup but the *.setup files need to indicate the same name as the new user defined names for the redefined phase names. Please note that the phases must be created via the Browser before this TCL will work. LIMITATIONS Also this setup ONLY works for a specified project and configuration(version), with the (four) phases created. The project and the configuration must be specified by full name. Note that the full name for the configuration is a combination of its name and version number, e.g. Beta:1 stands for configuration 'Beta' version 1. The project name(s) and the configuration name-version(s) should be included in the projects.setup file. In this way the TCL will know for which explicit project(s) the (default) users, roles and access rights should be created. The users and the roles are created at Corporate level and the access Rights are defined from Phase level, and new objects below this level will inherit the access Rights (in the specified project configuration). The creation of the users, roles and access rights goes via a schema listed in the following setup files: projects.setup : Setup of project(s) where scheme will be implemented users.setup : Setup of users which can be assiged to roles roles.setup : Setup of rolenames, phases&type and access rights userroles.setup : Setup to add a user to a role from roles.setup Each setup file has an example content and some comment to explain the format, see each .setup file for more explanation. Please note that the contents and relations in the .setup file are NOT checked against consistency and that the access.tcl script will give a fatal error if there is a syntax or semantical error (e.g. missing user in users.setup) in a .setup file. The following default access schema is configured in the example .setup files: FILE projects.setup This file lists the projects and configurations in where the access control should be implemented. FILE users.setup This file lists the set of (login) usernames which will participate in the access control. FILE roles.setup This is the default role access rights schema: ProjectManager | * | M-C-R-U-D ProjectMember | * | C-R-U-D Analyst | * | R Architect | * | R Designer | * | R Programmer | * | R Analyst | Analysis | C-U-D Architect | SystemDesign | C-U-D Designer | ObjectDesign | C-U-D Programmer | Implementation| C-U-D Tester | ObjectDesign | R Tester | Implementation| R QA-Officer | * | R The first column names the role name, and this role will be created. The second column indicates the phase name pattern, * means all phases. The last column indicates the set of access rights for that role in the indicated phase. It is possible to repeat a role name, and to specify additional access rights for a particulair phase. FILE userroles.setup This file assigns the roles to the users. If user1, user2 and user2 are allowed to have the role of Analyst you need to add the line: Analyst | user1:Y, user2:N, user3:N :Y and :N indicate if this role is the default role. In the above example user1 has the default role Analyst set to On and user2&3 have the default set to Off. If the default is set to Off the user needs to activate the role via the Security menu option Activate Role. Running the access.tcl script works in a OT4OMT environment (e.g. do a source of the /usr/ot4omt/.m4_login file in a C-shel). The following command will interpret and store the .setup files: otsh -f crud.tcl Some output will be shown, indicating what the script is doing. Redefintion of the Access Schema is possible. You can start the access.tcl script as follows: otsh -f crud.tcl -- -r This will NOT create the users and the roles, but it will interpret the roles.setup file, and resets the access rights for existing roles in the specified project. Technical TCL Information The type of simple access rights can be changed by adopting the crud.tcl. The array AllowedMap is a binray bitmaps wich define the internal bitmap for the simplified Access Rights defined in the .setup file. See RIG Chapter 10. Access Control, Class Controled and Action for the mapping between the integer values in the bitmap and the related actions. Note that controlAction stands for Access Rights to have Access Control, e.g. redefined the Access Rights setup. Known Proplems in Access Control in OMT 4.0/00 Current roles reset by default role in new process (e.g. editor) see also bug#5320 Clash default/activated role link Assume the following role setup: user wmt, two roles Tester and ProjectManger. ProjectManager is the default role for wmt (linkstatus defaultOn). The ProjectManager has full access to the project (e.g. all rights are explicitly allowed), and the Tester has all rights prohibited except the readright. These access rights are set op Phase level and on the SystemList as childrights. The problem is that the role 'Tester' can start the editor, and edit & save the diagram. This problem seems to be caused by the fact that the default role ProjectManagr (which has full access to the project) is activated when a new otsh is started from the brower, the M4 variables M4_projroles__AccessTest=''; and M4_corproles__corporate=''; printed from the editor show that these settings are empty, so the editor assumes the default role. When the default role, assign all rights, was removed (e.g. the wmt default role is now the selected default role) the following error message is printed when the diagram is opened: ERROR [112088]: There is no access rule that allows user 'wmt' to read list of l inks to customization-file versions of version 'Develop.2' of system 'AccessTest '. ERROR [112088]: There is no access rule that allows user 'wmt' to read version ' Develop.2' of system 'AccessTest'. ERROR [112088]: There is no access rule that allows user 'wmt' to read version ' Develop:1' of phase 'ObjectDesign' ('ObjectDesign'). This indicates again that the current effective roles are not passed to the editor (child otsh process) and that the (initial) access rights in the editor are the same as when the browser is started. Setting the M4 variable before starting the Browser with: setenv M4_projroles__AccessTest Tester Seems to be a temporary avoidance for this problem. REACTIONS IMPROVEMENTS etc. When you have used the CRUD access TCL please let us know your results, expectations, etc. We are very intrested in your reaction, in order to improve usability and userfriendness of the current the Access Control. Please send your email reactions to alru@cadre.com