Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Allow for the creation of "sub-repositories" that can be accessed through the web interface using the same login credentials as the parent repository. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | sub-repos |
| Files: | files | file ages | folders |
| SHA1: |
97d0118794cdb35c2256b3f1be03ed53 |
| User & Date: | drh 2011-03-28 18:08:45.415 |
| Original Comment: | Allow for the creation of "sub-repositories" that can be accessed through the web interface using the same login credentials as the parent repository. |
Context
|
2011-03-28
| ||
| 21:27 | Update the sub-repository capability so that it is able to restrict permissions on the sub-repository to a subset of the login permissions. ... (check-in: c477b2470f user: drh tags: sub-repos) | |
| 18:08 | Allow for the creation of "sub-repositories" that can be accessed through the web interface using the same login credentials as the parent repository. ... (check-in: 97d0118794 user: drh tags: sub-repos) | |
| 07:40 | Use "password" instead of "passwd" because it's complete and proper, and plays nicely w/ Emacs "send-invisible" capabilities that keep typed text from echoing on screen. ... (check-in: 13ceb46e49 user: bharder tags: trunk) | |
Changes
Changes to src/main.c.
| ︙ | ︙ | |||
966 967 968 969 970 971 972 |
if( zPathInfo==0 || zPathInfo[0]==0
|| (zPathInfo[0]=='/' && zPathInfo[1]==0) ){
fossil_redirect_home();
}else{
zPath = mprintf("%s", zPathInfo);
}
| | > > > | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > | | > > | 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 |
if( zPathInfo==0 || zPathInfo[0]==0
|| (zPathInfo[0]=='/' && zPathInfo[1]==0) ){
fossil_redirect_home();
}else{
zPath = mprintf("%s", zPathInfo);
}
/* Make g.zPath point to the first element of the path. Make
** g.zExtra point to everything past that point.
*/
while(1){
char *zAltRepo = 0;
g.zPath = &zPath[1];
for(i=1; zPath[i] && zPath[i]!='/'; i++){}
if( zPath[i]=='/' ){
zPath[i] = 0;
g.zExtra = &zPath[i+1];
/* Look for sub-repositories. A sub-repository is another repository
** that accepts the login credentials of the current repository. A
** subrepository is identified by a CONFIG table entry "subrepo:NAME"
** where NAME is the first component of the path. The value of the
** the CONFIG entries is the name of the repository.
*/
zAltRepo = db_text(0, "SELECT value FROM config WHERE name='subrepo:%q'",
g.zPath);
if( zAltRepo ){
int nHost;
login_check_credentials();
if( zAltRepo[0]!='/' ){
zAltRepo = mprintf("%s/../%z", g.zRepositoryName, zAltRepo);
file_simplify_name(zAltRepo, -1);
}
db_close(1);
db_open_repository(zAltRepo);
fossil_free(zAltRepo);
zPath += i;
nHost = g.zTop - g.zBaseURL;
g.zBaseURL = mprintf("%z/%s", g.zBaseURL, g.zPath);
g.zTop = g.zBaseURL + nHost;
continue;
}
}else{
g.zExtra = 0;
}
break;
}
if( g.zExtra ){
/* CGI parameters get this treatment elsewhere, but places like getfile
** will use g.zExtra directly.
*/
dehttpize(g.zExtra);
cgi_set_parameter_nocopy("name", g.zExtra);
|
| ︙ | ︙ |