$val ) # { $MSG .= "key '$key' val '$val'
\n" ; } # echo $MSG ; require_once 'session.ppp' ; require_once 'local.ppp' ; require_once 'conf.ppp' ; require_once 'baselib.ppp' ; require_once 'wwwsec.ppp' ; require_once 'librepo.ppp' ; # $DEBUG = 2 ; # echo session_vars () ; get_config () ; # conf_dump () ; $conn = db_connect_or_die () ; $TIT = REPO_TIT ( 'repositories' ) ; if ( $_GET [ 'login' ] or $_POST [ 'login' ] or ( $_SESSION [ 'USER' ] ) ) { assert_login () ; } if ( $ADM = GETVAR ( 'ADM' ) ) { switch_actv ( $ADM ) ; } $ACT = GETVAR ( 'ACT' ) ; $view = 'form' ; $view_err = '' ; $view_upd = '' ; $view_ack = '' ; function sort_by_name ( $a, $b ) { return strcasecmp ( $a -> repo_name (), $b -> repo_name () ) ; } function gen_repos_tab () { global $USER, $TBL ; if ( is_adm () ) { $qwe = '' ; } elseif ( $USER ) { $sub = "SELECT gid FROM {$TBL(repo_group_members)} " . "WHERE pid = '$USER'" ; $qwe_grps = "gid IN ( $sub )" ; $groups = get_repo_groups ( '', $qwe_grps, 'name' ) ; $group_names = "''" ; if ( count ( $groups ) ) { $names = array () ; foreach ( $groups as $group ) { $names [] = $group -> name ; } $group_names = sprintf ( "'%s'", implode ( "','", $names ) ) ; } $qwe = << info_row () ; } return BQ ( TAB ( $res ) ) ; } if ( ! $USER or $_POST [ 'CANCEL' ] ) { $view = 'home' ; } elseif ( $ACT == 'NEW_REPO_FORM' ) { if ( ! may_create_repo () ) { html_exit ( "you can't create repositories ($USER)" ) ; } $repo = new Repo ; $repo -> set_defaults () ; } elseif ( $ACT == 'UPD_REPO_FORM' ) { $RID = GETVAR ( 'RID' ) ; if ( ! $RID ) { $view_err .= UL ( LI ( "no RID" ) ) ; $view = 'home' ; } else { $repo = get_repo ( $RID ) ; $repo -> assert_is_manager () ; } } elseif ( $ACT == 'GET_FORM' ) { if ( $id = GETVAR ( 'ID' ) ) { $repo = get_repo ( $id ) ; $repo -> assert_is_manager () ; } else { $repo = new Repo ; $repo -> set_defaults () ; } if ( $err = $repo -> get_form () ) { $view_err .= $err ; } elseif ( $repo -> id ) { $res = $repo -> update () ; $view_upd .= $res ; $repo = $repo -> reget () ; if ( $repo -> side != 'project' and ! $repo -> rights [ $repo -> ownr ] ) { $repo -> add_owner_rights () ; make_svnaccess_file () ; $repo = $repo -> reget () ; } # maybe I removed myself as manager ... if ( ! $repo -> is_manager () ) { $view = 'home' ; } } else { $res = $repo -> insert () ; $view_upd .= $res ; $repo = $repo -> reget () ; if ( $repo -> side != 'project' ) { $repo -> add_owner_rights () ; $repo = $repo -> reget () ; } make_svnaccess_file () ; } } elseif ( $ACT == 'DEL' ) { $RID = GETVAR ( 'RID' ) ; if ( ! $RID ) { $view_upd .= UL ( LI ( "no RID" ) ) ; $view = 'home' ; } elseif ( $repo = try_repo ( $RID ) ) { $repo -> assert_is_manager () ; $view_ack .= $repo -> gen_form_del_ack ( 'DEL_ACK' ) ; $view = 'del_ack' ; } else { $view_err .= UL ( LI ( "can't find repository $RID" ) ) ; $view = 'home' ; } } elseif ( $ACT == 'DEL_ACK' ) { $RID = GETVAR ( 'RID' ) ; if ( ! $RID ) { $view_err .= UL ( LI ( "no RID" ) ) ; $view = 'home' ; } elseif ( $repo = try_repo ( $RID ) ) { $repo -> assert_is_manager () ; if ( $_POST [ 'YES' ] ) { $view_upd .= $repo -> delete () ; $view = 'home' ; } else { $view_upd .= UL ( LI ( "canceled delete" ) ) ; } } else { $view_upd .= UL ( LI ( "can't find repository $RID" ) ) ; $view = 'home' ; } } elseif ( $ACT ) { $view_err .= BLD ( "unknown ACT ($ACT)" ) ; $view = 'home' ; } else { $view = 'home' ; } html_start ( $TIT ) ; if ( $view_err ) { echo H2 ( RED ( 'error' ) ) ; echo RED ( $view_err ) ; } if ( $view_upd ) { echo H3 ( 'updates' ) ; echo RED ( $view_upd ) ; } if ( $view == 'home' ) { $class = Conf ( 'clases' ) ; $dscr = $class [ $CLAS ] -> dscr ; $msg = "$dscr can't create repositories" ; # echo ULc ( ! $USER, LI ( 'to see more : ' . login_url () ) ) ; # echo H3 ( ( $USER ? '' : 'public ' ) . 'repositories' ) ; echo ULc ( $USER, LI2 ( may_create_repo (), new_repo_url (), $msg ) ) ; echo gen_repos_tab () ; } elseif ( $view == 'form' ) { $id = $repo -> id ; $rev = $repo -> revision () ; $stts = $repo -> cnt_stats () ; $name = $id ? $repo -> repo_name () : 'undefined' ; if ( $stts > 1 ) { echo BQ ( $repo -> plot_url ( '' ) ) ; } echo H3 ( $id ? "update $name" : 'create a new repository' ) ; echo ULcc ( LIc ( $id, $repo -> del_url () ) ) ; echo BQ ( $repo -> gen_form ( 'GET_FORM' ) ) ; if ( $id and $rev == 0 ) { echo H3 ( 'svn load' ) ; echo BQ ( $repo -> load_form () ) ; } } elseif ( $view == 'del_ack' ) { echo H4 ( 'confirm' ) ; echo $view_ack ; } else { html_exit ( "unknown view ($view)" ) ; } html_end () ; # phpinfo() ; ?>