# HG changeset patch # User gga # Date 1535722482 14400 # Node ID f7e9c792047b4660abb41e9166461c724420a5d6 # Parent 40b26f8269a35ddedf4a1cdb8d023e0de13f1e5e planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 85194fa009ead2c34720faab61a4143fc29d17c2 diff -r 40b26f8269a3 -r f7e9c792047b create_account.py --- a/create_account.py Mon Mar 12 06:33:27 2018 -0400 +++ b/create_account.py Fri Aug 31 09:34:42 2018 -0400 @@ -2,17 +2,11 @@ from __future__ import print_function import argparse -import random import time from six.moves.builtins import str -from webapollo import WAAuth, WebApolloInstance - - -def pwgen(length): - chars = list('qwrtpsdfghjklzxcvbnm') - return ''.join(random.choice(chars) for _ in range(length)) +from webapollo import PasswordGenerator, WAAuth, WebApolloInstance if __name__ == '__main__': @@ -26,7 +20,7 @@ wa = WebApolloInstance(args.apollo, args.username, args.password) - password = pwgen(12) + password = PasswordGenerator(12) time.sleep(1) users = wa.users.loadUsers() user = [u for u in users diff -r 40b26f8269a3 -r f7e9c792047b create_features_from_gff3.py --- a/create_features_from_gff3.py Mon Mar 12 06:33:27 2018 -0400 +++ b/create_features_from_gff3.py Fri Aug 31 09:34:42 2018 -0400 @@ -8,7 +8,7 @@ from six.moves.builtins import str -from webapollo import AssertUser, GuessOrg, OrgOrGuess, WAAuth, WebApolloInstance, featuresToFeatureSchema, retry +from webapollo import GuessOrg, OrgOrGuess, PermissionCheck, WAAuth, WebApolloInstance, featuresToFeatureSchema, retry logging.basicConfig(level=logging.INFO) log = logging.getLogger(__name__) @@ -25,14 +25,15 @@ wa = WebApolloInstance(args.apollo, args.username, args.password) # User must have an account - gx_user = AssertUser(wa.users.loadUsers(email=args.email)) + gx_user = wa.users.assertOrCreateUser(args.email) # Get organism org_cn = GuessOrg(args, wa) if isinstance(org_cn, list): org_cn = org_cn[0] - # TODO: Check user perms on org. + if not PermissionCheck(gx_user, org_cn, "WRITE"): + raise Exception("Action not permitted") org = wa.organisms.findOrganismByCn(org_cn) bad_quals = ['date_creation', 'source', 'owner', 'date_last_modified', 'Name', 'ID'] diff -r 40b26f8269a3 -r f7e9c792047b create_or_update_organism.py --- a/create_or_update_organism.py Mon Mar 12 06:33:27 2018 -0400 +++ b/create_or_update_organism.py Fri Aug 31 09:34:42 2018 -0400 @@ -8,11 +8,10 @@ import sys import time -from webapollo import AssertUser, GuessOrg, OrgOrGuess, WAAuth, WebApolloInstance +from webapollo import GuessOrg, OrgOrGuess, PermissionCheck, WAAuth, WebApolloInstance logging.basicConfig(level=logging.INFO) log = logging.getLogger(__name__) - if __name__ == '__main__': parser = argparse.ArgumentParser(description='Create or update an organism in an Apollo instance') WAAuth(parser) @@ -33,8 +32,8 @@ if isinstance(org_cn, list): org_cn = org_cn[0] - # User must have an account - gx_user = AssertUser(wa.users.loadUsers(email=args.email)) + # User must have an account, if not, create it + gx_user = wa.users.assertOrCreateUser(args.email) log.info("Determining if add or update required") try: @@ -43,14 +42,9 @@ org = None if org: - has_perms = False old_directory = org['directory'] - for user_owned_organism in gx_user.organismPermissions: - if 'WRITE' in user_owned_organism['permissions']: - has_perms = True - break - if not has_perms: + if not PermissionCheck(gx_user, org_cn, "WRITE"): print("Naming Conflict. You do not have permissions to access this organism. Either request permission from the owner, or choose a different name for your organism.") sys.exit(2) diff -r 40b26f8269a3 -r f7e9c792047b delete_features.py --- a/delete_features.py Mon Mar 12 06:33:27 2018 -0400 +++ b/delete_features.py Fri Aug 31 09:34:42 2018 -0400 @@ -5,7 +5,7 @@ import logging import random -from webapollo import AssertUser, GuessOrg, OrgOrGuess, WAAuth, WebApolloInstance, retry +from webapollo import GuessOrg, OrgOrGuess, PermissionCheck, WAAuth, WebApolloInstance, retry logging.basicConfig(level=logging.INFO) log = logging.getLogger(__name__) @@ -21,14 +21,15 @@ wa = WebApolloInstance(args.apollo, args.username, args.password) # User must have an account - gx_user = AssertUser(wa.users.loadUsers(email=args.email)) + gx_user = wa.users.assertOrCreateUser(args.email) # Get organism org_cn = GuessOrg(args, wa) if isinstance(org_cn, list): org_cn = org_cn[0] - # TODO: Check user perms on org. + if not PermissionCheck(gx_user, org_cn, "WRITE"): + raise Exception("Action not permitted") org = wa.organisms.findOrganismByCn(org_cn) sequences = wa.organisms.getSequencesForOrganism(org['id']) diff -r 40b26f8269a3 -r f7e9c792047b delete_features.xml --- a/delete_features.xml Mon Mar 12 06:33:27 2018 -0400 +++ b/delete_features.xml Fri Aug 31 09:34:42 2018 -0400 @@ -15,6 +15,7 @@ --gff "$gff_out" --fasta "$fasta_out" --json "$json_out" + "$__user_email__" && @@ -42,7 +43,9 @@ - + + +