~edwargix/git.sr.ht

391aaec3b817d20a58771fe42281853326a13808 — Ludovic Chabant 7 years ago 74503fc
Fix ssh access
2 files changed, 9 insertions(+), 6 deletions(-)

M gitsrht-shell
M gitsrht/types/__init__.py
M gitsrht-shell => gitsrht-shell +7 -5
@@ 15,9 15,9 @@ from srht.config import cfg
from srht.validation import Validation
from srht.database import DbSession
db = DbSession(cfg("git.sr.ht", "connection-string"))
from scmsrht.access import has_access, UserAccess
from gitsrht.types import User, Repository, RepoVisibility, Redirect
from gitsrht.access import has_access, UserAccess
from gitsrht.repos import create_repo
from gitsrht.repos import GitRepoApi
db.init()

def log(s, *args):


@@ 75,17 75,19 @@ if not repo:
        sys.exit(128)

    valid = Validation({ "name": repo_name })
    repo = create_repo(valid, user)
    repo_api = GitRepoApi()
    repo = repo_api.create_repo(valid, user)
    if not valid.ok:
        sys.exit(128)
    repo.visibility = RepoVisibility.autocreated
    db.session.commit()

import gitsrht.types as tables
if cmd[0] == "git-receive-pack":
    if not has_access(repo, UserAccess.write, user):
    if not has_access(repo, UserAccess.write, user, tables=tables):
        sys.exit(128)
else:
    if not has_access(repo, UserAccess.read, user):
    if not has_access(repo, UserAccess.read, user, tables=tables):
        sys.exit(128)

log("Executing {}", " ".join(cmd))

M gitsrht/types/__init__.py => gitsrht/types/__init__.py +2 -1
@@ 1,7 1,8 @@
from srht.database import Base
from srht.oauth import ExternalUserMixin, ExternalOAuthTokenMixin
from scmsrht.repos import (
        BaseAccessMixin, BaseRedirectMixin, BaseRepositoryMixin)
        BaseAccessMixin, BaseRedirectMixin, BaseRepositoryMixin,
        RepoVisibility)

class User(Base, ExternalUserMixin):
    pass