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")
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)
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)),
def get_index(session): db = get_db() return dict(session=session, repos=db.query(Repository).all())
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")
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)
def get_admin_user(session): db = get_db() return dict(session=session, users=db.query(User).all())