Example #1
0
def post_admin_keys_add(session):
    db = get_db()
    name = request.forms.get("name")
    data = request.forms.get("data")
    if not is_empty(name) and not is_empty(data):
        public_key = PublicKey(name, data, session["username"])
        db.add(public_key)
        db.commit()
        ssh.write_auth_file(ssh.compute_path(), db.query(User).all())
    return redirect("/admin/keys")
Example #2
0
def post_admin_repo_create(session):
    db = get_db()
    name = request.forms.get("name")
    success = False
    if not is_empty(name):
        try:
            git.create_repo(name)
            repo = Repository(name)
            db.add(repo)
            db.commit()
            success = True
        except:
            pass
    return dict(session=session, post=True, success=success, name=name)
Example #3
0
    Try to find the permissions of a user regarding a repository.
    """
    return (
        db.query(Permissions)
        .filter(Permissions.user_name == username,
                Permissions.repo_name == reponame)
        .first()
    )

if __name__ == '__main__':
    username = get_username()
    command = get_original_command()

    mode, reponame, progname = parse_command(command)

    db = get_db()
    user = get_user(db, username)
    repo = get_repo(db, reponame)

    if not user.admin:
        permissions = get_permissions(db, username, reponame)

        if mode == READING:
            if permissions is None or not permissions.read:
                stderr_exit('you do not have read permission on this repo')
        elif mode == WRITING:
            if permissions is None or not permissions.write:
                stderr_exit('you do not have write permission on this repo')

    repos_path = os.path.join(os.getcwd(), "repos")
    proc = subprocess.Popen((progname, "{}.git".format(reponame)),
Example #4
0
def get_index(session):
    db = get_db()
    return dict(session=session, repos=db.query(Repository).all())
Example #5
0
def get_admin_keys_delete(session, keyname):
    db = get_db()
    (db.query(PublicKey).filter(PublicKey.name == keyname, PublicKey.user_name == session["username"]).delete())
    db.commit()
    ssh.write_auth_file(ssh.compute_path(), db.query(User).all())
    return redirect("/admin/keys")
Example #6
0
def get_admin_keys(session):
    db = get_db()
    keys = db.query(PublicKey).filter(PublicKey.user_name == session["username"]).all()
    return dict(session=session, keys=keys)
Example #7
0
def get_admin_user(session):
    db = get_db()
    return dict(session=session, users=db.query(User).all())