Пример #1
0
def signup():
    """Register a new user

    Returns
    -------
    json
        Info about the user
    """
    if current_app.iniconfig.getboolean("askomics",
                                        "disable_account_creation"):
        return jsonify({
            'error': True,
            'errorMessage': "Account creation is disabled",
            'user': {}
        }), 500

    user = {}

    data = request.get_json()

    local_auth = LocalAuth(current_app, session)
    local_auth.check_inputs(data)

    if not local_auth.get_error():
        user = local_auth.persist_user(data)
        local_auth.create_user_directories(user['id'], user['username'])
        session['user'] = user

    return jsonify({
        'error': local_auth.get_error(),
        'errorMessage': local_auth.get_error_message(),
        'user': user
    })
Пример #2
0
    def main(self):
        """Insert the user and the eventualy galaxy account"""
        # Inseret user in database
        inputs = {
            "fname": self.args.first_name,
            "lname": self.args.last_name,
            "username": self.args.username,
            "email": self.args.email,
            "password": self.args.password,
            "apikey": self.args.api_key
        }

        local_auth = LocalAuth(self.application, self.session)
        if local_auth.get_number_of_users() > 0:
            self.application.logger.error(
                "Database is not empty, user {} will not be created".format(
                    self.args.username))
            return
        self.application.logger.info("Create user {}".format(
            self.args.username))
        self.user = local_auth.persist_user(inputs)
        self.session["user"] = self.user
        local_auth.create_user_directories(self.user["id"],
                                           self.user["username"])

        # insert Galaxy account if set
        if self.args.galaxy_url and self.args.galaxy_apikey:
            result = local_auth.add_galaxy_account(self.user,
                                                   self.args.galaxy_url,
                                                   self.args.galaxy_apikey)
            self.user = result["user"]
Пример #3
0
    def test_persist_user(self):

        self.tps.clean_up()

        local_auth = LocalAuth(self.settings, self.request.session)
        local_auth.persist_user('jdoe', '*****@*****.**', 'jdoe')
        local_auth.persist_user('jsmith', '*****@*****.**', 'jsmith')
        local_auth.set_auth_type('ldap')
        local_auth.persist_user('ldap_jdoe', '*****@*****.**')

        assert self.tps.test_row_presence('users', 'username, email, password', ('ldap_jdoe', '*****@*****.**', None))
        assert self.tps.test_row_presence('users', 'username, email', ('jdoe', '*****@*****.**'))
        assert self.tps.test_row_presence('users', 'username, email', ('jsmith', '*****@*****.**'))
Пример #4
0
    def create_user(self, username):
        """Summary

        Parameters
        ----------
        username : TYPE
            Description

        Returns
        -------
        TYPE
            Description
        """
        galaxy = None
        if username == "jdoe":
            galaxy = {"url": "http://*****:*****@askomics.org"
            if username == "jdoe" else "*****@*****.**",
            "apikey": "0000000001" if username == "jdoe" else "0000000002",
            "galaxy": None,
            "quota": 0 if username == "jdoe" else 0,
        }

        auth = LocalAuth(self.app, self.session)
        user = auth.persist_user(uinfo)
        if galaxy:
            self.session["user"] = user
            user = auth.add_galaxy_account(user, galaxy["url"],
                                           galaxy["apikey"])["user"]
            self.session = {}
        auth.create_user_directories(user["id"], user["username"])

        return user
Пример #5
0
    def test_persist_user(self):

        self.tps.clean_up()

        local_auth = LocalAuth(self.settings, self.request.session)
        local_auth.persist_user('jdoe', '*****@*****.**', 'jdoe')
        local_auth.persist_user('jsmith', '*****@*****.**', 'jsmith')
        local_auth.set_auth_type('ldap')
        local_auth.persist_user('ldap_jdoe', '*****@*****.**')

        assert self.tps.test_row_presence(
            'users', 'username, email, password',
            ('ldap_jdoe', '*****@*****.**', None))
        assert self.tps.test_row_presence('users', 'username, email',
                                          ('jdoe', '*****@*****.**'))
        assert self.tps.test_row_presence('users', 'username, email',
                                          ('jsmith', '*****@*****.**'))