GPMSWiki/DeveloperDocumentation/MigrationHelp/RightsAndRoleFiles

From BRF-Software
Jump to navigation Jump to search

Rights and Roles (RnR)

The following is the sample MeltDB rights and roles definition file. A .rnr file consists of three blocks:

  • HEADER
  • RIGHT defintions
  • ROLE defintions

The first line of the file defines the Project class and the spelling has to match your GPMS project class (of course)

PROJECT_CLASS MeltDB
 


The next section defines the rights, take care for the indenting and the correct spelling of your GPMS DataSource Type. The following list are mysql rights that can be associated to your GPMS rights.

  • select
  • grant
  • insert
  • update
  • delete
  • alter
  • index
  • create
  • drop
  • references

Please notice the special right GPMS_USERMGT which is assigned to roles that are allowed to add users to the GPMS!


RIGHT basic_access
	DS_TYPE MeltDB
		DB select 

#################################################################################################
# Global rights											#
#################################################################################################

RIGHT add_user
	DS_TYPE MeltDB
		DB grant insert update delete select

RIGHT modify_user
	DS_TYPE MeltDB
		DB grant insert update delete select

RIGHT delete_user
	DS_TYPE MeltDB
		DB grant insert update delete select

RIGHT administer_database
	DS_TYPE MeltDB
		DB insert update delete select

RIGHT export_project
	DS_TYPE MeltDB
		DB select

RIGHT import_project
	DS_TYPE MeltDB
		DB insert update select

#################################################################################################
# Rights that refer to all experiments of a certain project					#
#################################################################################################

RIGHT view_basetypes
	DS_TYPE MeltDB
		DB select

RIGHT add_basetypes
	DS_TYPE MeltDB
		DB insert select 
	
RIGHT modify_basetypes
	DS_TYPE MeltDB
		DB update select 

RIGHT delete_basetypes
	DS_TYPE MeltDB
		DB delete select 

# a tool is a configured preprocessing method (MeltDB::Tool)
RIGHT view_tools  
	DS_TYPE MeltDB
		DB select 
	
RIGHT add_tools
	DS_TYPE MeltDB
		DB insert select 
	
RIGHT modify_tools
	DS_TYPE MeltDB
		DB update select 	

RIGHT delete_tools
	DS_TYPE MeltDB
		DB delete select
 	
#################################################################################################
# Rights specific to the user(s) associated with the current meta experiment			#
#################################################################################################

# experimental_data refers to MeltDB::AC meaning the actual data produced by the user	
RIGHT view_experimental_data		
	DS_TYPE MeltDB
		DB select	
	
RIGHT add_experimental_data	
	DS_TYPE MeltDB
		DB insert select	
	
RIGHT modify_experimental_data
	DS_TYPE MeltDB
		DB update select	
	
RIGHT delete_experimental_data
	DS_TYPE MeltDB
		DB delete select	

RIGHT evaluate_chromatograms
RIGHT evaluate_chromatograms_restricted
RIGHT evaluate_chromatograms_unrestricted

RIGHT view_experimental_factors
	DS_TYPE MeltDB
		DB select	
RIGHT add_experimental_factors
	DS_TYPE MeltDB
		DB insert select
RIGHT modify_experimental_factors
	DS_TYPE MeltDB
		DB update select
RIGHT delete_experimental_factors
	DS_TYPE MeltDB
		DB delete select

RIGHT export_data
	DS_TYPE MeltDB
		DB select	

RIGHT import_data
	DS_TYPE MeltDB
		DB insert update select	

RIGHT modify_db
	DS_TYPE MeltDB
		DB insert update delete alter index create drop references

RIGHT modify_data
	DS_TYPE MeltDB
		DB insert update

RIGHT delete_data 
	DS_TYPE MeltDB
		DB delete

 


The last section of the .rnr file defines the Roles of your Project Class.

  • ROLE <NAME> <RIGHT_A> <RIGHT_B> <RIGHT_C> ... <RIGHT_N>
# user with read only permissions and almost completely restricted access
ROLE Guest basic_access view_experimental_data view_tools view_experimental_factors

ROLE User basic_access modify_data view_experimental_factors view_tools view_experimental_data add_tools add_experimental_data modify_experimental_data delete_experimental_data evaluate_chromatograms evaluate_chromatograms_restricted

ROLE Maintainer basic_access modify_data delete_data modify_experimental_factors delete_experimental_factors view_experimental_factors view_tools view_experimental_data add_tools add_experimental_data modify_experimental_data delete_experimental_factors modify_tools delete_tools evaluate_chromatograms evaluate_chromatograms_restricted

# user who is responsible for the database and for the solution of bugs and problems
# can do almost everything and also MODIFY THE DATABASE (e.g. alter table)

ROLE Developer basic_access modify_db modify_data delete_data administer_database view_experimental_factors add_experimental_factors delete_experimental_factors modify_experimental_factors view_tools add_tools delete_tools modify_tools view_experimental_data add_experimental_data delete_experimental_data modify_experimental_data evaluate_chromatograms evaluate_chromatograms_unrestricted export_data


# user who is responsible for the project (in the majority of cases this is one of the 
# MeltDB developers in Bielefeld), can do everything (e.g. configure project) except 
# modifying the database

# has to add Maintainers, Annotators and Guests but cannot add Developers
ROLE Chief	basic_access add_user view_experimental_data view_tools view_experimental_factors add_tools add_experimental_data modify_user delete_user evaluate_chromatograms evaluate_chromatograms_unrestricted GPMS_USERMGT

# the super-user that has all rights. 
ROLE Admin basic_access modify_db modify_data delete_data add_user modify_user delete_user administer_database view_experimental_factors add_experimental_factors delete_experimental_factors modify_experimental_factors view_tools add_tools delete_tools modify_tools view_experimental_data add_experimental_data delete_experimental_data modify_experimental_data evaluate_chromatograms evaluate_chromatograms_unrestricted export_data GPMS_USERMGT