Mercurial > repos > geco-team > gmql_auth
view gmql_rest_auth.xml @ 0:cbaa7a012914 draft default tip
planemo upload for repository https://github.com/lu-brn/gmql-galaxy commit 953ee36ceda5814dc9baa03427bc0eb4ee2e93bd-dirty
author | geco-team |
---|---|
date | Tue, 26 Jun 2018 08:57:55 -0400 |
parents | |
children |
line wrap: on
line source
<tool id="gmql_auth" name="GMLQ Access" version="0.1.1"> <description>Manage the registration, login and logout of users to the GMQL system.</description> <macros> <import>gmql_rest_macros.xml</import> </macros> <command><![CDATA[ python $__tool_directory__/gmql_rest_auth.py #if $user_ops.operation == 'login' -cmd=login -login_type=$user_ops.auth.log_type #if $user_ops.auth.log_type == 'registered' : -username=$user_ops.auth.username -password=$user_ops.auth.password -output=$login_user_output #else : -output=$login_guest_output #end if #elif $user_ops.operation == 'logout' : -output=$logout_output -cmd=logout -user=$user_ops.authToken #else : -output=$register_output -cmd=register -new_user=$new_user_data #end if ]]></command> <configfiles> <configfile name="new_user_data">#if $user_ops.operation == 'register' : #import json #set $data = dict () $data.update(firstName=$user_ops.new_firstName.value,lastName=$user_ops.new_lastName.value, username=$user_ops.new_username.value, email=$user_ops.new_email.value, password=$user_ops.new_password.value) #set $data_file = json.dumps($data) #echo $data_file #end if </configfile> <inputs name="params" filename="params.json"/> </configfiles> <inputs> <conditional name="user_ops"> <param name="operation" type="select" display="radio" multiple="false" label="Select the desired action" > <option value="login">Login</option> <option value="logout">Logout</option> <option value="register">Register</option> </param> <when value="login"> <conditional name="auth"> <param name="log_type" type="select" label="Log as guest or registered?" display="radio" multiple="false" > <option value="guest">Guest</option> <option value="registered">Registered User</option> </param> <when value="registered"> <param name="username" type="text" label="Username" > <validator type="regex" message="String not valid">[a-zA-Z0-9_.-]+$</validator> </param> <param name="password" type="text" label="Password" > <validator type="regex" message="String not valid">[a-zA-Z0-9_.-]+$</validator> </param> </when> </conditional> </when> <when value="logout"> <param format="gmql_user" name="authToken" type="data" label="Select user" /> </when> <when value="register"> <param name="new_firstName" type="text" label="First Name"> <validator type="regex" message="String not valid">[a-zA-Z0-9_.]+[\sa-zA-Z0-9_.]*$</validator> </param> <param name="new_lastName" type="text" label="Last Name"> <validator type="regex" message="String not valid">[a-zA-Z0-9_.]+[\sa-zA-Z0-9_.]*$</validator> </param> <param name="new_username" type="text" label="Preferred username"> <validator type="regex" message="String not valid">[a-zA-Z0-9_.]+$</validator> </param> <param name="new_email" type="text" label="E-mail address"> <validator type="regex" message="Insert a valid email-address">[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$</validator> </param> <param name="new_password" type="text" label="Choose a password"> <validator type="regex" message="String not valid">[a-zA-Z0-9_.]+$</validator> </param> </when> </conditional> </inputs> <outputs> <data format="gmql_user" name="login_guest_output" label="Guest - GMQL User" > <filter>user_ops['operation'] == 'login' and user_ops['auth']['log_type'] == 'guest'</filter> <actions> <action name="column_names" type="metadata" default="name,token,valid" /> </actions> </data> <data format="gmql_user" name="login_user_output" label="${user_ops.auth.username.value} - GMQL User" > <filter>user_ops['operation'] == 'login' and user_ops['auth']['log_type'] == 'registered'</filter> <actions> <action name="column_names" type="metadata" default="name,token,valid" /> </actions> </data> <data format="txt" name="logout_output" label="${user_ops.authToken.name.split()[0].rstrip('')} Logout Result" > <filter>user_ops['operation'] == 'logout'</filter> </data> <data format="gmql_user" name="register_output" label="${user_ops.new_username.value} - GMQL User"> <filter>user_ops['operation'] == 'register'</filter> <actions> <action name="column_names" type="metadata" default="name,token,valid" /> </actions> </data> </outputs> <tests> <test> <conditional name="user_ops"> <param name="operation" value="login" /> <param name="log_type" value="guest" /> </conditional> <output name="login_guest_output"> <assert_contents> <has_n_columns n="3" /> <has_line_matching expression="Guest\t.+\tTrue" /> </assert_contents> </output> </test> </tests> <help> .. class:: warningmark Every operation on a GMQL system requires to the user to be authenticated on it ---- **What it does** A user can authenticate as a simple guest, or as a registered user. Once the user has logged in, a user token is returned (as a gmql_user file). The user token is required by all the other tools to perform all their operations. When a user logouts, the token is invalidated and cannot be used anymore. </help> <expand macro="citations" /> </tool>