Fossil

Check-in [eb24a021d6]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make all users inherit the capabilities of "nobody" as well as (optionally) of "anonymous".
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: eb24a021d641a6a0b67cb7907dbbbddf90bb6f6f
User & Date: eric 2008-07-26 17:08:33.000
Context
2008-07-27
18:35
Change behavior of Fossil's tag handling. 1. All subcommands of command <tt>tag</tt> prepends a prefix <tt>sym-</tt> infront of every tag name passed to them. Tags beginning with <tt>sym-</tt> are special in Fossil as they might serve as replacement of a UUID they are attached to.<br><br> Further, <tt>tag list</tt> will only list all tags beginning with <tt>sym-</tt> but with that prefix removed during display as default.<br><br> All subcommands can get passed an option <tt>--raw</tt>, that prevent the prepending of the prefix <tt>sym-</tt> in front of the tag name. <tt>tag list</tt> will report all tags without removing any prefix if called with option <tt>--raw</tt>. 2. If a command takes a tag name that may be confused with a UUID, the command did interpret that parameter as a UUID instead as a tag name. Such tags might now be prefixed with a <tt>tag:</tt> to enforce the command to take them as tag name instead of a UUID. For example: <verbatim> fossil tag add abcde $uuid : fossil update tag:abcde </verbatim> without the prefix <tt>tag:</tt> fossil would try to update to a UUID beginning with <tt>abcde</tt>. If no such UUID was found, fossil will complain and exit. check-in: d1c9938025 user: cle tags: trunk
2008-07-26
17:08
Make all users inherit the capabilities of "nobody" as well as (optionally) of "anonymous". check-in: eb24a021d6 user: eric tags: trunk
16:51
Add a "User-Agent" header to the HTTP traffic generated by fossil. The user-agent string is "Fossil/$UUID". check-in: 31824fbf91 user: dan tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/db.c.
1196
1197
1198
1199
1200
1201
1202



1203
1204
1205
1206
1207
1208
1209
**    diff-command     External command to run when performing a diff.
**                     If undefined, the internal text diff will be used.
**
**    editor           Text editor command used for check-in comments.
**
**    gdiff-command    External command to run when performing a graphical
**                     diff. If undefined, text diff will be used.



**
**    localauth        If enabled, require that HTTP connections from
**                     127.0.0.1 be authenticated by password.  If
**                     false, all HTTP requests from localhost have
**                     unrestricted access to the repository.
**
**    clearsign        When enabled (the default), fossil will attempt to







>
>
>







1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
**    diff-command     External command to run when performing a diff.
**                     If undefined, the internal text diff will be used.
**
**    editor           Text editor command used for check-in comments.
**
**    gdiff-command    External command to run when performing a graphical
**                     diff. If undefined, text diff will be used.
**
**    inherit-anon     If enabled, any web user inherits capabilities from
**                     anonymous as well as nobody.
**
**    localauth        If enabled, require that HTTP connections from
**                     127.0.0.1 be authenticated by password.  If
**                     false, all HTTP requests from localhost have
**                     unrestricted access to the repository.
**
**    clearsign        When enabled (the default), fossil will attempt to
1225
1226
1227
1228
1229
1230
1231

1232
1233
1234
1235
1236
1237
1238
*/
void setting_cmd(void){
  static const char *azName[] = {
    "autosync",
    "diff-command",
    "editor",
    "gdiff-command",

    "localauth",
    "clearsign",
    "pgp-command",
    "proxy",
    "web-browser",
  };
  int i;







>







1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
*/
void setting_cmd(void){
  static const char *azName[] = {
    "autosync",
    "diff-command",
    "editor",
    "gdiff-command",
    "inherit-anon",
    "localauth",
    "clearsign",
    "pgp-command",
    "proxy",
    "web-browser",
  };
  int i;
Changes to src/login.c.
236
237
238
239
240
241
242


243
244
245
246
247
248
249
**
*/
void login_check_credentials(void){
  int uid = 0;
  const char *zCookie;
  const char *zRemoteAddr;
  const char *zCap = 0;



  /* Only run this check once.  */
  if( g.userUid!=0 ) return;


  /* If the HTTP connection is coming over 127.0.0.1 and if
  ** local login is disabled, then there is no need to check







>
>







236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
**
*/
void login_check_credentials(void){
  int uid = 0;
  const char *zCookie;
  const char *zRemoteAddr;
  const char *zCap = 0;
  const char *zNcap;
  const char *zAcap;

  /* Only run this check once.  */
  if( g.userUid!=0 ) return;


  /* If the HTTP connection is coming over 127.0.0.1 and if
  ** local login is disabled, then there is no need to check
294
295
296
297
298
299
300








301
302
303
304
305
306
307
    if( zCap==0 ){
      zCap = "";
    }
  }
  g.userUid = uid;
  if( g.zLogin && strcmp(g.zLogin,"nobody")==0 ){
    g.zLogin = 0;








  }
  login_set_capabilities(zCap);
}

/*
** Set the global capability flags based on a capability string.
*/







>
>
>
>
>
>
>
>







296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
    if( zCap==0 ){
      zCap = "";
    }
  }
  g.userUid = uid;
  if( g.zLogin && strcmp(g.zLogin,"nobody")==0 ){
    g.zLogin = 0;
  }
  if( uid>0 ){
    zNcap = db_text("", "SELECT cap FROM user WHERE login = 'nobody'");
    login_set_capabilities(zNcap);
    if( db_get_int("inherit-anon",0) ){
      zAcap = db_text("", "SELECT cap FROM user WHERE login = 'anonymous'");
      login_set_capabilities(zAcap);
    }
  }
  login_set_capabilities(zCap);
}

/*
** Set the global capability flags based on a capability string.
*/
Changes to src/setup.c.
551
552
553
554
555
556
557






558
559
560
561
562
563
564
  @ <p>When enabled, the password sign-in is required for
  @ web access coming from 127.0.0.1.  When disabled, web access
  @ from 127.0.0.1 is allows without any login - the user id is selected
  @ from the ~/.fossil database. Password login is always required
  @ for incoming web connections on internet addresses other than
  @ 127.0.0.1.</p></li>







  @ <hr>
  entry_attribute("Login expiration time", 6, "cookie-expire", "cex", "8766");
  @ <p>The number of hours for which a login is valid.  This must be a
  @ positive number.  The default is 8760 hours which is approximately equal
  @ to a year.</p>

  @ <hr>







>
>
>
>
>
>







551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
  @ <p>When enabled, the password sign-in is required for
  @ web access coming from 127.0.0.1.  When disabled, web access
  @ from 127.0.0.1 is allows without any login - the user id is selected
  @ from the ~/.fossil database. Password login is always required
  @ for incoming web connections on internet addresses other than
  @ 127.0.0.1.</p></li>

  @ <hr>
  onoff_attribute("Inherit capabilities from anonymous user",
     "inherit-anon", "inherit-anon", 0);
  @ <p>When enabled, all web users inherit capabilities from
  @ "anonymous", as well as from "nobody".</p></li>

  @ <hr>
  entry_attribute("Login expiration time", 6, "cookie-expire", "cex", "8766");
  @ <p>The number of hours for which a login is valid.  This must be a
  @ positive number.  The default is 8760 hours which is approximately equal
  @ to a year.</p>

  @ <hr>