[Fusionforge-commits] r13057 - in trunk: . src/common/include src/common/search src/common/widget src/cronjobs src/db src/plugins/contribtracker/www src/plugins/wiki/www/themes/fusionforge src/www/export src/www/include src/www/news/admin src/www/search/include/renderers src/www/softwaremap src/www/top

Roland Mas lolando at fusionforge.org
Fri Apr 8 15:18:56 CEST 2011


Author: lolando
Date: 2011-04-08 15:18:56 +0200 (Fri, 08 Apr 2011)
New Revision: 13057

Added:
   trunk/src/db/20110405-forum_attachment_fix-bug284.sql
Removed:
   trunk/src/db/20110405-forum_attachment_fix-bug284.sql
Modified:
   trunk/
   trunk/src/common/include/FusionForge.class.php
   trunk/src/common/include/Group.class.php
   trunk/src/common/include/SCMPlugin.class.php
   trunk/src/common/include/Stats.class.php
   trunk/src/common/include/tag_cloud.php
   trunk/src/common/search/ExportProjectSearchQuery.class.php
   trunk/src/common/search/ProjectSearchQuery.class.php
   trunk/src/common/widget/Widget_MyProjects.class.php
   trunk/src/cronjobs/update_docdata_dataword.php
   trunk/src/db/20050804-2.php
   trunk/src/plugins/contribtracker/www/index.php
   trunk/src/plugins/wiki/www/themes/fusionforge/themeinfo.php
   trunk/src/www/export/projhtml.php
   trunk/src/www/export/projnews.php
   trunk/src/www/export/projtitl.php
   trunk/src/www/export/rss20_docman.php
   trunk/src/www/export/rss_utils.inc
   trunk/src/www/export/tracker.php
   trunk/src/www/include/features_boxes.php
   trunk/src/www/include/html.php
   trunk/src/www/news/admin/index.php
   trunk/src/www/news/admin/news_admin_utils.php
   trunk/src/www/search/include/renderers/ProjectHtmlSearchRenderer.class.php
   trunk/src/www/softwaremap/full_list.php
   trunk/src/www/softwaremap/tag_cloud.php
   trunk/src/www/softwaremap/trove_list.php
   trunk/src/www/top/mostactive.php
   trunk/src/www/top/toplist.php
Log:
Merged fixes from 5.1


Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:8721-8727
/branches/Branch_4_7:6879,6881,6884,6897,6899,6902,6904,6906,6909,6911,6922,6932,6936,6939,6942,6944,6946-6948,6954,6956,6959,7000-7001,7012,7111,7130-7131,7133-7134,7138,7140-7142,7147-7148,7159-7160,7163,7168,7177,7179,7203,7205,7207,7210,7212,7251-7253,7255,7284,7287,7291,7293,7295-7296,7300,7355,7365-7366,7375-7376,7378,7395,7423-7426,7435,7458,7504,7567,7577,7623-7624,7638,7659-7660,7662,7665,7668,7674,7699,7746-7748,7771,7774,7786,7838
/branches/Branch_5_1:11607-11609,11621,11625,11627,11631,11638,11644,11647-11651,11677,11680-11681,11683-11684,11719-11720,11724,11754,11780,11783,11792,11794,11802,11808-11816,11818,11822-11824,11827-11829,11834-11835,11847,11849,11851-11852,11855,11858,11862,11867,11869-11872,11876,11880,11893,11902-11905,11915,11923-11927,11929-11930,11932,11934-11941,11943,11948-11949,11952-11954,11956-11960,11962,11965-11966,11972,11975,11980,11983-11984,11986-11987,11990,11992-11997,12003-12004,12010-12013,12015,12018-12023,12024,12043-12044,12046-12050,12051-12061,12063,12065,12070,12073-12074,12075-12076,12081-12083,12093-12094,12102,12105,12118,12124,12127-12128,12139,12141,12143,12148-12149,12153,12157-12159,12168-12169,12175-12180,12190,12194-12198,12203,12208-12213,12217-12258,12262,12264-12266,12274-12277,12281-12282,12287-12290,12340,12345-12346,12352,12359,12472-12473,12594,12634,12636-12638,12658-12659,12684-12712,12714-12715,12733,12780-12783,12785-12786,12795,12797,12800-12802,12815-12816,12840-12844,12845-12856,12860,12882-12883,12888-12892,12897,12904,12914-12917,12922-12926,12929-12936,12939,12959-12965,12967-12971,13011
/branches/Branch_4_8:7334-7335,7344-7345,7382,7387,7389-7390,7396,7398,7401-7402,7428-7429,7437,7440,7443,7449-7455,7459,7462,7466,7469-7470,7476-7478,7480,7485,7490-7492,7505,7540,7556-7560,7568,7570-7571,7573,7576,7580,7609-7611,7613,7615,7618,7621-7622,7625-7627,7639,7658,7661,7663-7664,7666-7667,7673,7675,7678,7680,7685,7688-7689,7693,7700,7706-7708,7713,7725,7728-7742,7760,7763-7764,7767,7769-7770,7773,7776,7784-7785,7791,7797,7799,7802-7808,7810-7811,7816,7818,7825-7828,7839,7846-7847,7850,7894,7902,7920-7922,7927-7928,7932,7936-7937,7939,7942,7944-7945,7947,7951,7956,7958,7960,8064,8079-8080,8108,8113,8119,8121,8127-8128,8145,8197,8201-8202,8216,8224,8226,8228,8247-8250,8252,8271-8272,8310-8311,8328,8337,8339-8357,8361,8371,8373-8375,8378-8379,8383-8396,8415,8427-8431,8438-8441,8449,8452-8453,8458,8461,8477-8478,8480,8482,8492,8514,8530,8604-8605,8608,8637,8662,8674,8751,8754,8756,8760-8761,8812,8850,8945,8995,8998,9004-9006,9124,9137,9141,9317,9443,9469,9670,9701,9726,9934,10013
/branches/Branch_5_0:8892,8895,8897-8898,8900,8903-8904,8906-8907,8910,8915,8922,8924,8926,8929,8931-8933,8941,8946,8951,8955,8972-8977,8981,8997,8999,9002,9031-9032,9050,9080-9081,9084-9086,9093-9095,9102-9104,9108,9113-9115,9117-9118,9123,9125,9127-9131,9135-9136,9139,9146,9148-9150,9179-9191,9193-9195,9198,9200,9202,9204,9207,9209,9211,9213,9215,9220-9222,9231,9234-9235,9243,9251,9254,9259,9287,9315,9318,9347-9349,9358,9396,9427,9429,9431-9433,9441-9442,9444-9445,9462,9464,9468,9522-9523,9549,9551-9552,9576-9577,9579,9615,9633-9634,9672-9673,9675-9676,9684,9686-9687,9689,9699,9727,9729,9731,9930-9932,9935,9956,9980,10005-10006,10021,10024,10027,10064,10081-10082,10273,10285,10820-10824,10868,10872,10876-10878,10880,10918,11015,11017,11058-11060,11085-11086,11160-11165,11252-11253,11287,11294,11581,11619-11620,11679,11722-11723,11907,11974

   + /trunk:8721-8727
/branches/Branch_5_0:8892,8895,8897-8898,8900,8903-8904,8906-8907,8910,8915,8922,8924,8926,8929,8931-8933,8941,8946,8951,8955,8972-8977,8981,8997,8999,9002,9031-9032,9050,9080-9081,9084-9086,9093-9095,9102-9104,9108,9113-9115,9117-9118,9123,9125,9127-9131,9135-9136,9139,9146,9148-9150,9179-9191,9193-9195,9198,9200,9202,9204,9207,9209,9211,9213,9215,9220-9222,9231,9234-9235,9243,9251,9254,9259,9287,9315,9318,9347-9349,9358,9396,9427,9429,9431-9433,9441-9442,9444-9445,9462,9464,9468,9522-9523,9549,9551-9552,9576-9577,9579,9615,9633-9634,9672-9673,9675-9676,9684,9686-9687,9689,9699,9727,9729,9731,9930-9932,9935,9956,9980,10005-10006,10021,10024,10027,10064,10081-10082,10273,10285,10820-10824,10868,10872,10876-10878,10880,10918,11015,11017,11058-11060,11085-11086,11160-11165,11252-11253,11287,11294,11581,11619-11620,11679,11722-11723,11907,11974
/branches/Branch_4_8:7334-7335,7344-7345,7382,7387,7389-7390,7396,7398,7401-7402,7428-7429,7437,7440,7443,7449-7455,7459,7462,7466,7469-7470,7476-7478,7480,7485,7490-7492,7505,7540,7556-7560,7568,7570-7571,7573,7576,7580,7609-7611,7613,7615,7618,7621-7622,7625-7627,7639,7658,7661,7663-7664,7666-7667,7673,7675,7678,7680,7685,7688-7689,7693,7700,7706-7708,7713,7725,7728-7742,7760,7763-7764,7767,7769-7770,7773,7776,7784-7785,7791,7797,7799,7802-7808,7810-7811,7816,7818,7825-7828,7839,7846-7847,7850,7894,7902,7920-7922,7927-7928,7932,7936-7937,7939,7942,7944-7945,7947,7951,7956,7958,7960,8064,8079-8080,8108,8113,8119,8121,8127-8128,8145,8197,8201-8202,8216,8224,8226,8228,8247-8250,8252,8271-8272,8310-8311,8328,8337,8339-8357,8361,8371,8373-8375,8378-8379,8383-8396,8415,8427-8431,8438-8441,8449,8452-8453,8458,8461,8477-8478,8480,8482,8492,8514,8530,8604-8605,8608,8637,8662,8674,8751,8754,8756,8760-8761,8812,8850,8945,8995,8998,9004-9006,9124,9137,9141,9317,9443,9469,9670,9701,9726,9934,10013
/branches/Branch_5_1:11607-11609,11621,11625,11627,11631,11638,11644,11647-11651,11677,11680-11681,11683-11684,11719-11720,11724,11754,11780,11783,11792,11794,11802,11808-11816,11818,11822-11824,11827-11829,11834-11835,11847,11849,11851-11852,11855,11858,11862,11867,11869-11872,11876,11880,11893,11902-11905,11915,11923-11927,11929-11930,11932,11934-11941,11943,11948-11949,11952-11954,11956-11960,11962,11965-11966,11972,11975,11980,11983-11984,11986-11987,11990,11992-11997,12003-12004,12010-12013,12015,12018-12023,12024,12043-12044,12046-12050,12051-12061,12063,12065,12070,12073-12074,12075-12076,12081-12083,12093-12094,12102,12105,12118,12124,12127-12128,12139,12141,12143,12148-12149,12153,12157-12159,12168-12169,12175-12180,12190,12194-12198,12203,12208-12213,12217-12258,12262,12264-12266,12274-12277,12281-12282,12287-12290,12340,12345-12346,12352,12359,12472-12473,12594,12634,12636-12638,12658-12659,12684-12712,12714-12715,12733,12780-12783,12785-12786,12795,12797,12800-12802,12815-12816,12840-12844,12845-12856,12860,12882-12883,12888-12892,12897,12904,12914-12917,12922-12926,12929-12936,12939,12959-12965,12967-12971,13011,13022,13025,13031-13032,13034,13043-13046,13048-13050,13053,13056
/branches/Branch_4_7:6879,6881,6884,6897,6899,6902,6904,6906,6909,6911,6922,6932,6936,6939,6942,6944,6946-6948,6954,6956,6959,7000-7001,7012,7111,7130-7131,7133-7134,7138,7140-7142,7147-7148,7159-7160,7163,7168,7177,7179,7203,7205,7207,7210,7212,7251-7253,7255,7284,7287,7291,7293,7295-7296,7300,7355,7365-7366,7375-7376,7378,7395,7423-7426,7435,7458,7504,7567,7577,7623-7624,7638,7659-7660,7662,7665,7668,7674,7699,7746-7748,7771,7774,7786,7838

Modified: svk:merge
   - 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7001
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7012
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7291
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7458
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7623
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7624
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7838
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:10013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7335
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7344
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7345
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7402
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7455
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7459
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7469
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7470
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7476
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7480
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7505
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7540
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7557
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7559
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7560
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7580
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7609
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7615
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7618
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7622
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7626
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7708
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7713
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7725
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7730
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7732
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7734
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7737
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7738
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7739
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7742
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7760
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7763
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7764
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7767
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7769
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7773
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7776
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7784
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7785
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7797
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7799
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7811
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7826
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7827
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7828
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7839
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7951
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7958
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8108
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8113
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8119
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8128
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8145
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8216
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8224
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8226
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8250
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8337
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8357
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8371
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8375
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8379
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8415
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8431
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8441
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8449
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8453
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8530
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8604
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8605
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8608
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8637
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8751
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8756
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8761
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:9141
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10006
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10021
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10064
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10082
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10824
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11017
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11165
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11253
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11294
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8895
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8898
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8900
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9115
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9131
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9136
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9139
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9150
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9188
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9195
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9198
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9207
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9209
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9213
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9243
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9254
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9358
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9433
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9549
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9552
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9579
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9675
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9676
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11631
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11638
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11651
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11684
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11724
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11754
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11794
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11802
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11818
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11835
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11855
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11858
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11872
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11876
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11905
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11930
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11962
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11966
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11975
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11984
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11987
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11997
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12015
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12022
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12049
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12073
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12105
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12143
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12169
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12180
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12190
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12203
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12266
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12282
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12594
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12659
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12715
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12816
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12843
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12856
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12892
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12917
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12971
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:13011
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/trunk:8727

   + 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7001
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7012
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7291
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7458
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7623
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7624
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7838
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:10013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7335
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7344
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7345
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7402
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7455
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7459
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7469
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7470
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7476
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7480
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7505
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7540
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7557
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7559
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7560
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7580
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7609
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7615
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7618
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7622
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7626
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7708
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7713
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7725
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7730
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7732
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7734
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7737
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7738
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7739
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7742
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7760
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7763
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7764
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7767
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7769
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7773
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7776
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7784
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7785
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7797
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7799
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7811
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7826
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7827
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7828
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7839
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7951
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7958
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8108
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8113
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8119
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8128
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8145
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8216
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8224
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8226
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8250
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8337
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8357
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8371
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8375
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8379
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8415
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8431
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8441
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8449
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8453
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8530
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8604
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8605
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8608
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8637
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8751
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8756
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8761
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:9141
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10006
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10021
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10064
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10082
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10824
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11017
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11165
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11253
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11294
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8895
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8898
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8900
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9115
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9131
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9136
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9139
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9150
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9188
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9195
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9198
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9207
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9209
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9213
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9243
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9254
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9358
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9433
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9549
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9552
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9579
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9675
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9676
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11631
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11638
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11651
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11684
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11724
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11754
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11794
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11802
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11818
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11835
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11855
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11858
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11872
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11876
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11905
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11930
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11962
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11966
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11975
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11984
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11987
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11997
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12015
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12022
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12049
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12073
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12105
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12143
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12169
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12180
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12190
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12203
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12266
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12282
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12594
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12659
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12715
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12816
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12843
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12856
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12892
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12917
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:12971
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:13011
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:13056
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/trunk:8727


Modified: trunk/src/common/include/FusionForge.class.php
===================================================================
--- trunk/src/common/include/FusionForge.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/include/FusionForge.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -3,7 +3,7 @@
  * FusionForge top-level information
  *
  * Copyright 2002, GForge, LLC
- * Copyright 2009, Roland Mas
+ * Copyright 2009-2011, Roland Mas
  *
  * This file is part of FusionForge.
  *
@@ -42,23 +42,37 @@
 	}
 
 	function getNumberOfPublicHostedProjects() {
-		$res = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1 AND is_public=1',
+		$res = db_query_params ('SELECT group_id FROM groups WHERE status=$1',
 				      array ('A'));	
-		if (!$res || db_numrows($res) < 1) {
+		if (!$res) {
 			$this->setError('Unable to get hosted project count: '.db_error());
 			return false;
 		}
-		return $this->parseCount($res);
+		$count = 0;
+		$ra = RoleAnonymous::getInstance() ;
+		while ($row = db_fetch_array($res)) {
+			if ($ra->hasPermission('project_read', $row['group_id'])) {
+				$count++;
+			}
+		}
+		return $count;
 	}
 
 	function getNumberOfHostedProjects() {
-		$res = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1',
+		$res = db_query_params ('SELECT group_id FROM groups WHERE status=$1',
 					array ('A'));	
-		if (!$res || db_numrows($res) < 1) {
+		if (!$res) {
 			$this->setError('Unable to get hosted project count: '.db_error());
 			return false;
 		}
-		return $this->parseCount($res);
+		$count = 0;
+		$ra = RoleAnonymous::getInstance() ;
+		while ($row = db_fetch_array($res)) {
+			if ($ra->hasPermission('project_read', $row['group_id'])) {
+				$count++;
+			}
+		}
+		return $count;
 	}
 
 	function getNumberOfActiveUsers() {
@@ -73,16 +87,18 @@
 
 
 	function getPublicProjectNames() {
-		$res = db_query_params ('SELECT unix_group_name FROM groups WHERE status=$1 AND is_public=1 ORDER BY unix_group_name',
+		$res = db_query_params ('SELECT unix_group_name, group_id FROM groups WHERE status=$1 ORDER BY unix_group_name',
 					array ('A'));
 		if (!$res) {
 			$this->setError('Unable to get list of public projects: '.db_error());
 			return false;
 		}
-		$rows=db_numrows($res);
 		$result = array();
-		for ($i=0; $i<$rows; $i++) {
-			$result[$i] = db_result($res, $i, 'unix_group_name');
+		$ra = RoleAnonymous::getInstance() ;
+		while ($row = db_fetch_array($res)) {
+			if ($ra->hasPermission('project_read', $row['group_id'])) {
+				$result[] = $row['unix_group_name'];
+			}
 		}
 		return $result;
 	}

Modified: trunk/src/common/include/Group.class.php
===================================================================
--- trunk/src/common/include/Group.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/include/Group.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -304,7 +304,6 @@
 			$res = db_query_params('
 				INSERT INTO groups(
 					group_name,
-					is_public,
 					unix_group_name,
 					short_description,
 					http_domain,
@@ -318,9 +317,8 @@
 					rand_hash,
 					built_from_template
 				)
-				VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)',
+				VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)',
 						array (htmlspecialchars ($group_name),
-						       $is_public,
 						       $unix_name,
 						       htmlspecialchars($description),
 						       $unix_name.".".forge_get_config('web_host'),
@@ -330,7 +328,7 @@
 						       $scm_box,
 						       htmlspecialchars($purpose),
 						       time(),
-						       $is_public,
+						       0,
 						       md5(util_randbytes()),
 						       $built_from_template));
 			if (!$res || db_affected_rows($res) < 1) {
@@ -423,11 +421,9 @@
 
 		$res = db_query_params('
 			UPDATE groups
-			SET is_public=$1, type_id=$2,
-				unix_box=$3, http_domain=$4
-			WHERE group_id=$5',
-					array($is_public,
-					      $type_id,
+			SET type_id=$1, unix_box=$2, http_domain=$3
+			WHERE group_id=$4',
+					array($type_id,
 					      $unix_box,
 					      $http_domain,
 					      $this->getID()));
@@ -439,9 +435,6 @@
 		}
 
 		// Log the audit trail
-		if ($is_public != $this->isPublic()) {
-			$this->addHistory('is_public', $this->isPublic());
-		}
 		if ($type_id != $this->data_array['type_id']) {
 			$this->addHistory('type_id', $this->data_array['type_id']);
 		}
@@ -572,33 +565,31 @@
 				use_pm_depend_box=$8,
 				use_scm=$9,
 				use_news=$10,
-				is_public=$11,
-				new_doc_address=$12,
-				send_all_docs=$13,
-				use_ftp=$14,
-				use_tracker=$15,
-				use_frs=$16,
-				use_stats=$17
-			WHERE group_id=$18',
-					array(htmlspecialchars($group_name),
-					      $homepage,
-					      htmlspecialchars($short_description),
-					      $use_mail,
-					      $use_survey,
-					      $use_forum,
-					      $use_pm,
-					      $use_pm_depend_box,
-					      $use_scm,
-					      $use_news,
-					      $is_public,
-					      $new_doc_address,
-					      $send_all_docs,
-					      $use_ftp,
-					      $use_tracker,
-					      $use_frs,
-					      $use_stats,
-					      $this->getID()));
-
+				new_doc_address=$11,
+				send_all_docs=$12,
+				use_ftp=$13,
+				use_tracker=$14,
+				use_frs=$15,
+				use_stats=$16
+			WHERE group_id=$17',
+				       array(htmlspecialchars($group_name),
+					     $homepage,
+					     htmlspecialchars($short_description),
+					     $use_mail,
+					     $use_survey,
+					     $use_forum,
+					     $use_pm,
+					     $use_pm_depend_box,
+					     $use_scm,
+					     $use_news,
+					     $new_doc_address,
+					     $send_all_docs,
+					     $use_ftp,
+					     $use_tracker,
+					     $use_frs,
+					     $use_stats,
+					     $this->getID()));
+		
 		if (!$res) {
 			$this->setError(sprintf(_('Error updating project information: %s'), db_error()));
 			db_rollback();
@@ -784,12 +775,13 @@
 	}
 
 	/**
-	 * isPublic - Simply returns the is_public flag from the database.
+	 * isPublic - Wrapper around RBAC to check if a project is anonymously readable
 	 *
 	 * @return	boolean	is_public.
 	 */
 	function isPublic() {
-		return $this->data_array['is_public'];
+		$ra = RoleAnonymous::getInstance() ;
+		return $ra->hasPermission('project_read', $this->getID());
 	}
 
 	/**
@@ -1607,13 +1599,11 @@
 		$res = db_query_params('DELETE FROM user_group WHERE group_id=$1',
 					array($this->getID()));
 
-		// unlink roles to this project
-		if ($this->isPublic()) {
-			$ra = RoleAnonymous::getInstance();
-			$rl = RoleLoggedIn::getInstance();
-			$ra->unlinkProject($this);
-			$rl->unlinkProject($this);
-		}
+		// unlink roles from this project
+		$ra = RoleAnonymous::getInstance();
+		$rl = RoleLoggedIn::getInstance();
+		$ra->unlinkProject($this);
+		$rl->unlinkProject($this);
 		// @todo : unlink all the other roles created in the project...
 
 		//
@@ -2563,7 +2553,7 @@
 			plugin_hook_by_reference ('clone_project_from_template', $params) ;
 		} else {
 			// Disable everything
-			$res = db_query_params ('UPDATE groups SET use_mail=0, use_survey=0, use_forum=0, use_pm=0, use_pm_depend_box=0, use_scm=0, use_news=0, use_docman=0, is_public=0, use_ftp=0, use_tracker=0, use_frs=0, use_stats=0 WHERE group_id=$1',
+			$res = db_query_params ('UPDATE groups SET use_mail=0, use_survey=0, use_forum=0, use_pm=0, use_pm_depend_box=0, use_scm=0, use_news=0, use_docman=0, use_ftp=0, use_tracker=0, use_frs=0, use_stats=0 WHERE group_id=$1',
 
 						array ($this->getID())) ;
 		}

Modified: trunk/src/common/include/SCMPlugin.class.php
===================================================================
--- trunk/src/common/include/SCMPlugin.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/include/SCMPlugin.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -224,7 +224,9 @@
 
 	function printAdminPage($params) {
 		$group = group_get_object($params['group_id']);
-		if ( $group->usesPlugin ( $this->name ) && $group->isPublic()) {
+		$ra = RoleAnonymous::getInstance() ;
+
+		if ( $group->usesPlugin ( $this->name ) && $ra->hasPermission('project_read', $group->getID())) {
 			print '<p><input type="checkbox" name="scm_enable_anonymous" value="1" '.$this->c($group->enableAnonSCM()).' /><strong>'._('Enable Anonymous Read Access').'</strong></p>';
 		}
 	}

Modified: trunk/src/common/include/Stats.class.php
===================================================================
--- trunk/src/common/include/Stats.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/include/Stats.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -60,12 +60,12 @@
 	*/
 	function getMostActiveStats($type, $offset) {
 		if ($type == 'week') 	{
-			return db_query_params ('SELECT groups.group_name,groups.unix_group_name,groups.group_id,project_weekly_metric.ranking,project_weekly_metric.percentile FROM groups,project_weekly_metric WHERE groups.group_id=project_weekly_metric.group_id AND groups.is_public=1 AND groups.type_id=1 AND groups.status = $1 AND groups.use_stats=1 ORDER BY ranking ASC',
+			return db_query_params ('SELECT groups.group_name,groups.unix_group_name,groups.group_id,project_weekly_metric.ranking,project_weekly_metric.percentile FROM groups,project_weekly_metric WHERE groups.group_id=project_weekly_metric.group_id AND groups.type_id=1 AND groups.status = $1 AND groups.use_stats=1 ORDER BY ranking ASC',
 						array('A'),
 						0,
 						$offset) ;
 		} else {
-			return db_query_params ('SELECT g.group_name,g.unix_group_name,g.group_id,s.group_ranking as ranking,s.group_metric as percentile FROM groups g,stats_project_all_vw s WHERE g.group_id=s.group_id AND g.is_public=1 AND g.type_id=1 AND g.status = $1 AND g.use_stats=1 AND s.group_ranking > 0 ORDER BY ranking ASC',
+			return db_query_params ('SELECT g.group_name,g.unix_group_name,g.group_id,s.group_ranking as ranking,s.group_metric as percentile FROM groups g,stats_project_all_vw s WHERE g.group_id=s.group_id AND g.type_id=1 AND g.status = $1 AND g.use_stats=1 AND s.group_ranking > 0 ORDER BY ranking ASC',
 						array('A'),
 						0,
 						$offset) ;
@@ -79,7 +79,7 @@
 	* @return a resultset of unix_group_name, group_name, items
 	*/
 	function getTopMessagesPosted() {
-		return db_query_params ('SELECT g.unix_group_name, g.group_name, SUM(s.msg_posted) AS items FROM stats_project s, groups g WHERE s.group_id=g.group_id AND g.is_public=1 AND g.status=$1 GROUP BY g.unix_group_name, g.group_name ORDER BY items DESC',
+		return db_query_params ('SELECT g.unix_group_name, g.group_name, SUM(s.msg_posted) AS items FROM stats_project s, groups g WHERE s.group_id=g.group_id AND g.status=$1 GROUP BY g.unix_group_name, g.group_name ORDER BY items DESC',
 					array ('A'),
 					100) ;
 	}
@@ -91,7 +91,7 @@
 	* @return a resultset of group_name, unix_group_name, items
 	*/
 	function getTopPageViews() {
-		return db_query_params ('SELECT g.group_name, g.unix_group_name, SUM(s.page_views) AS items FROM stats_project_months s, groups g WHERE s.group_id=g.group_id AND g.is_public=1 AND g.status=$1 GROUP BY g.group_name, g.unix_group_name ORDER BY items DESC', 
+		return db_query_params ('SELECT g.group_name, g.unix_group_name, SUM(s.page_views) AS items FROM stats_project_months s, groups g WHERE s.group_id=g.group_id AND g.status=$1 GROUP BY g.group_name, g.unix_group_name ORDER BY items DESC', 
 					array ('A'),
 					100) ;
 	}
@@ -103,7 +103,7 @@
 	* @return a resultset of group_name, unix_group_name, items
 	*/
 	function getTopDownloads() {
-		return db_query_params ('SELECT g.group_name, g.unix_group_name, SUM(frs.downloads) AS items FROM frs_dlstats_grouptotal_vw frs, groups g WHERE g.group_id = frs.group_id AND g.status=$1 AND g.is_public=1 GROUP BY g.group_name, g.unix_group_name ORDER BY items DESC',
+		return db_query_params ('SELECT g.group_name, g.unix_group_name, SUM(frs.downloads) AS items FROM frs_dlstats_grouptotal_vw frs, groups g WHERE g.group_id = frs.group_id AND g.status=$1 GROUP BY g.group_name, g.unix_group_name ORDER BY items DESC',
 					array ('A'),
 					100) ;
 	}

Modified: trunk/src/common/include/tag_cloud.php
===================================================================
--- trunk/src/common/include/tag_cloud.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/include/tag_cloud.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -98,21 +98,28 @@
 
 	$return = '';
 
-	$res = db_query_params ('SELECT name,count(*) AS count
+	$res = db_query_params ('SELECT project_tags.name,project_tags.group_id
 					 FROM project_tags, groups
 					 WHERE project_tags.group_id = groups.group_id
-					 AND status = $1 AND is_public=1 AND type_id=1 AND register_time > 0
-					 GROUP BY name ORDER BY count DESC',
+					 AND groups.status = $1 AND groups.type_id=1 AND groups.register_time > 0',
 				array ('A')) ;
-	if (db_numrows($res) > 0) {
+	$tag_count = array();
+	while ($row = db_fetch_array($res)) {
+		if (forge_check_perm ('project_read', $row['group_id'])) {
+			if (!isset ($tag_count[$row['name']])) {
+				$tag_count[$row['name']] = 0;
+			}
+			$tag_count[$row['name']]++;
+		}
+	}
+	if (count($tag_count) > 0) {
 		$count_min = 0;
 		$count_max = 0;
 		$nb = 1;
 		// Search upper and lower tag frequencies; stop when maximum tag number to display is reached
-		while ($row = db_fetch_array($res)) {
-			$tag_count[$row['name']] = $row['count'];
-			if ($count_min == 0 || $row['count'] < $count_min) $count_min = $row['count'];
-			if ($row['count'] > $count_max) $count_max = $row['count'];
+		foreach ($tag_count as $name => $count) {
+			if ($count_min == 0 || $count < $count_min) $count_min = $count;
+			if ($count > $count_max) $count_max = $count;
 			if ($params['nb_max'] && $nb >= $params['nb_max']) break; // no limit if nb_max == 0
 			$nb++;
 		}
@@ -168,4 +175,9 @@
 	return $return;
 }
 
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
 ?>

Modified: trunk/src/common/search/ExportProjectSearchQuery.class.php
===================================================================
--- trunk/src/common/search/ExportProjectSearchQuery.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/search/ExportProjectSearchQuery.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -53,7 +53,7 @@
 							 'SELECT headline(unix_group_name, q) as unix_group_name, headline(short_description, q) as short_description, type_id, groups.group_id, license, register_time FROM groups, groups_idx, to_tsquery($1) q ',
 							 array (implode (' ', $words))) ;
 				$qpa = db_construct_qpa ($qpa,
-							 'WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
+							 'WHERE status IN ($1, $2) AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
 							 array ('A',
 								'H',
 								'')) ;
@@ -80,7 +80,7 @@
 				$qpa = db_construct_qpa ($qpa,
 							 'SELECT unix_group_name, short_description, type_id, groups.group_id, license, register_time FROM groups ') ;
 				$qpa = db_construct_qpa ($qpa,
-							 'WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3',
+							 'WHERE status IN ($1, $2) AND short_description <> $3',
 							 array ('A',
 								'H',
 								'')) ;
@@ -104,7 +104,7 @@
 			}
 		} else {
 			$qpa = db_construct_qpa ($qpa,
-						 'SELECT group_name,unix_group_name,type_id,groups.group_id, short_description,license,register_time FROM groups WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
+						 'SELECT group_name,unix_group_name,type_id,groups.group_id, short_description,license,register_time FROM groups WHERE status IN ($1, $2) AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
 							 array ('A',
 								'H',
 								'')) ;

Modified: trunk/src/common/search/ProjectSearchQuery.class.php
===================================================================
--- trunk/src/common/search/ProjectSearchQuery.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/search/ProjectSearchQuery.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -48,44 +48,23 @@
 	function getQuery() {
 		global  $LUSER;
 
-		$pids = array () ;
-		if (isset ($LUSER)) {
-			foreach ($LUSER->getGroups() as $p) {
-				$pids[] = $p->getID() ;
-			}
-		}
-
 		$qpa = db_construct_qpa () ;
 
 		if (forge_get_config('use_fti')) {
 			if (count ($this->words)) {
 				$words = $this->getFormattedWords();
 				$qpa = db_construct_qpa ($qpa,
-							 'SELECT DISTINCT ON (rank(vectors, q), group_name) type_id, g.group_id, headline(group_name, q) as group_name, unix_group_name, headline(short_description, q) as short_description FROM groups AS g, to_tsquery($1) AS q, groups_idx as i WHERE g.status in ($2, $3) AND (g.is_public=1 ',
+							 'SELECT DISTINCT ON (rank(vectors, q), group_name) type_id, g.group_id, headline(group_name, q) as group_name, unix_group_name, headline(short_description, q) as short_description FROM groups AS g, to_tsquery($1) AS q, groups_idx as i WHERE g.status in ($2, $3) ',
 							 array ($words,
 								'A',
 								'H')) ;
-				
-				if (isset ($LUSER)) {
-					$qpa = db_construct_qpa ($qpa,
-								 'OR g.group_id = ANY($1) ',
-								 array ($pids)) ;
-				}
 				$qpa = db_construct_qpa ($qpa,
-							 ') AND (vectors @@ q AND ') ;
+							 'AND (vectors @@ q AND ') ;
 			} else {
 				$qpa = db_construct_qpa ($qpa,
-							 'SELECT DISTINCT ON (group_name) type_id, g.group_id, group_name, unix_group_name, short_description FROM groups AS g WHERE g.status in ($1, $2) AND (g.is_public=1 ',
+							 'SELECT DISTINCT ON (group_name) type_id, g.group_id, group_name, unix_group_name, short_description FROM groups AS g WHERE g.status in ($1, $2) AND (',
 							 array ('A',
 								'H')) ;
-				if (isset ($LUSER)) {
-					$qpa = db_construct_qpa ($qpa,
-								 'OR g.group_id = ANY($1) ',
-								 array (db_int_array_to_any_clause($pids))) ;
-				}
-				$qpa = db_construct_qpa ($qpa,
-							 ') AND (') ;
-
 			}
 			if (count($this->phrases)) {
 				$qpa = db_construct_qpa ($qpa,
@@ -111,15 +90,8 @@
 			}
 		} else {
 			$qpa = db_construct_qpa ($qpa, 
-						 'SELECT g.group_name AS group_name, g.unix_group_name AS unix_group_name, g.type_id AS type_id, g.group_id AS group_id, g.short_description AS short_description FROM groups g WHERE g.status IN ($1, $2) AND (g.is_public=1 ',
+						 'SELECT g.group_name AS group_name, g.unix_group_name AS unix_group_name, g.type_id AS type_id, g.group_id AS group_id, g.short_description AS short_description FROM groups g WHERE g.status IN ($1, $2) AND ((',
 						 array ('A', 'H')) ;
-			if (isset ($LUSER)) {
-				$qpa = db_construct_qpa ($qpa,
-							 'OR g.group_id = ANY($1) ',
-							 array (db_int_array_to_any_clause($pids))) ;
-			}
-			$qpa = db_construct_qpa ($qpa,
-						 ') AND ((') ;
 			$qpa = $this->addIlikeCondition ($qpa, 'g.group_name') ;
 			$qpa = db_construct_qpa ($qpa,
 						 ') OR (') ;

Modified: trunk/src/common/widget/Widget_MyProjects.class.php
===================================================================
--- trunk/src/common/widget/Widget_MyProjects.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/common/widget/Widget_MyProjects.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -50,6 +50,7 @@
 		} else {
 			$html_my_projects .= '<table style="width:100%">';
 			$i = 0;
+			$ra = RoleAnonymous::getInstance();
 			foreach ($groups as $g) {
 				$i++;
 				$html_my_projects .= '
@@ -73,7 +74,7 @@
 					$html_my_projects .= ' <small><A HREF="/project/admin/?group_id='.$g->getID().'">['._("Admin").']</A></small>';
 				}
 				$html_my_projects .= ' <small>('.htmlspecialchars (implode (', ', $role_names)).')</small>';
-				if (!$g->isPublic()) {
+				if (!$ra->hasPermission('project_read', $group->getID())) {
 					$html_my_projects .= ' (*)';
 					$private_shown = true;
 				}

Deleted: trunk/src/db/20110405-forum_attachment_fix-bug284.sql
===================================================================
--- trunk/src/db/20110405-forum_attachment_fix-bug284.sql	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/db/20110405-forum_attachment_fix-bug284.sql	2011-04-08 13:18:56 UTC (rev 13057)
@@ -1,5 +0,0 @@
-alter table forum_attachment alter column mimetype type text;
-alter table forum_attachment alter column mimetype set default 'application/octet-stream';
-alter table forum_pending_attachment alter column mimetype type text;
-alter table forum_pending_attachment alter column mimetype set default 'application/octet-stream';
-

Copied: trunk/src/db/20110405-forum_attachment_fix-bug284.sql (from rev 13056, branches/Branch_5_1/src/db/20110405-forum_attachment_fix-bug284.sql)
===================================================================
--- trunk/src/db/20110405-forum_attachment_fix-bug284.sql	                        (rev 0)
+++ trunk/src/db/20110405-forum_attachment_fix-bug284.sql	2011-04-08 13:18:56 UTC (rev 13057)
@@ -0,0 +1,5 @@
+alter table forum_attachment alter column mimetype type text;
+alter table forum_attachment alter column mimetype set default 'application/octet-stream';
+alter table forum_pending_attachment alter column mimetype type text;
+alter table forum_pending_attachment alter column mimetype set default 'application/octet-stream';
+

Modified: trunk/src/plugins/contribtracker/www/index.php
===================================================================
--- trunk/src/plugins/contribtracker/www/index.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/plugins/contribtracker/www/index.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -77,13 +77,7 @@
 	if(!$group || !is_object ($group)) {
 		exit_no_group () ;
 	}
-	if (!$group->isPublic()) {
-		$perm =& $group->getPermission ();
-		
-		if (!$perm || !is_object($perm) || !$perm->isMember()) {
-			exit_no_group () ;
-		}
-	}
+	session_require_perm ('project_read', $group_id);
 
 	$contrib_id = getIntFromRequest ('contrib_id') ;
 	if ($contrib_id) {    // List only one particular contribution

Modified: trunk/src/plugins/wiki/www/themes/fusionforge/themeinfo.php
===================================================================
--- trunk/src/plugins/wiki/www/themes/fusionforge/themeinfo.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/plugins/wiki/www/themes/fusionforge/themeinfo.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -23,11 +23,7 @@
         $domain = textdomain(NULL);
         textdomain('fusionforge');
 
-        //group is private
-        if (!$project->isPublic()) {
-            //if it's a private group, you must be a member of that group
-            session_require_perm('project_read', $group_id);
-        }
+	session_require_perm ('project_read', $group_id);
 
         //for dead projects must be member of admin project
         if (!$project->isActive()) {

Modified: trunk/src/www/export/projhtml.php
===================================================================
--- trunk/src/www/export/projhtml.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/projhtml.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -56,13 +56,7 @@
 //
 //	Add checks to see if they have perms to view this
 //
-if (!$group->isPublic()) {
-	if (!session_loggedin()) {
-		exit_permission_denied();
-	} elseif (!user_ismember($group_id)) {
-		exit_permission_denied();
-	}
-}
+session_require_perm ('project_read', $group_id);
 
 echo project_summary($group_id,$mode,$no_table);
 

Modified: trunk/src/www/export/projnews.php
===================================================================
--- trunk/src/www/export/projnews.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/projnews.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -64,13 +64,7 @@
 //
 //  Add checks to see if they have perms to view this
 //
-if (!$group->isPublic()) {
-	if (!session_loggedin()) {
-		exit_permission_denied();
-	} elseif (!user_ismember($group_id)) {
-		exit_permission_denied();
-	}
-}
+session_require_perm ('project_read', $group_id);
 
 if ($limit>20 || $limit < 1) {
 	$limit=20;

Modified: trunk/src/www/export/projtitl.php
===================================================================
--- trunk/src/www/export/projtitl.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/projtitl.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -61,13 +61,7 @@
 //
 //  Add checks to see if they have perms to view this
 //
-if (!$group->isPublic()) {
-    if (!session_loggedin()) {
-        exit_permission_denied();
-    } elseif (!user_ismember($group_id)) {
-        exit_permission_denied();
-    }
-}
+session_require_perm ('project_read', $group_id);
 
 echo '<h1>Welcome to '.$group->getPublicName().' project!</h1>
 <p>';

Modified: trunk/src/www/export/rss20_docman.php
===================================================================
--- trunk/src/www/export/rss20_docman.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/rss20_docman.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -54,7 +54,7 @@
 	        beginFeed();
 		endOnError($group->getErrorMessage());
 	}
-    elseif (!$group->isPublic()){
+    elseif (!session_check_perm ('project_read', $group_id)){
 		beginFeed();
 		endOnError('No RSS feed available as group status is set to private.');
 	}

Modified: trunk/src/www/export/rss_utils.inc
===================================================================
--- trunk/src/www/export/rss_utils.inc	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/rss_utils.inc	2011-04-08 13:18:56 UTC (rev 13057)
@@ -55,6 +55,9 @@
 	// item outputs
 	$addendum = '' ;
 	while ($row = db_fetch_array($res)) {
+		if (!forge_check_perm ('project_read', $row['group_id'])) {
+			continue ;
+		}
                 if ($callback) {
                 	$addendum=$callback($row);
                 }

Modified: trunk/src/www/export/tracker.php
===================================================================
--- trunk/src/www/export/tracker.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/export/tracker.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -64,13 +64,10 @@
 	//
 	//  Add checks to see if they have perms to view this
 	//
-	if (!$group->isPublic()) {
-		if (!session_loggedin()) {
-			endOnError('Permission Denied');
-			$errors = true;
-		} elseif (!user_ismember($group_id)) {
-			endOnError('Permission Denied');
-		}
+	;
+	if (!session_check_perm ('tracker', $atid)) {
+		endOnError('Permission Denied');
+		$errors = true;
 	}
 	//
 	//	Create the ArtifactType object
@@ -193,4 +190,10 @@
 	displayError('Project ID or Artifact ID Not Set');
 	endDocument();
 }
+
+// Local Variables:
+// mode: php
+// c-file-style: "bsd"
+// End:
+
 ?>

Modified: trunk/src/www/include/features_boxes.php
===================================================================
--- trunk/src/www/include/features_boxes.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/include/features_boxes.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -118,26 +118,13 @@
 
 
 function stats_getprojects_active_public() {
-	$res_count = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1 AND is_public=1',
-			array ('A'));
-	if (db_numrows($res_count) > 0) {
-		$row_count = db_fetch_array($res_count);
-		return $row_count['count'];
-	} else {
-		return "error";
-	}
+	$ff = new FusionForge();
+	return $ff->getNumberOfPublicHostedProjects();
 }
 
 function stats_getprojects_total() {
-	$res_count = db_query_params ('SELECT count(*) AS count FROM groups WHERE status=$1 OR status=$2',
-			array('A',
-				'H'));
-	if (db_numrows($res_count) > 0) {
-		$row_count = db_fetch_array($res_count);
-		return $row_count['count'];
-	} else {
-		return "error";
-	}
+	$ff = new FusionForge();
+	return $ff->getNumberOfHostedProjects();
 }
 
 function stats_getpageviews_total() {

Modified: trunk/src/www/include/html.php
===================================================================
--- trunk/src/www/include/html.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/include/html.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -732,10 +732,8 @@
 		exit_error(sprintf(_('Project Problem: %s'),$project->getErrorMessage()),'home');
 	}
 
-	//group is private
-	if (!$project->isPublic()) {
-		session_require_perm ('project_read', $group_id);
-	}
+	// Check permissions in case of restricted access
+	session_require_perm ('project_read', $group_id);
 
 	//for dead projects must be member of admin project
 	if (!$project->isActive()) {

Modified: trunk/src/www/news/admin/index.php
===================================================================
--- trunk/src/www/news/admin/index.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/news/admin/index.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -316,7 +316,6 @@
 			WHERE is_approved=0
 			AND news_bytes.group_id=groups.group_id
 			AND post_date > $1
-			AND groups.is_public=1
 			AND groups.status=$2
 			ORDER BY post_date', array ($old_date, 'A')) ;
 

Modified: trunk/src/www/news/admin/news_admin_utils.php
===================================================================
--- trunk/src/www/news/admin/news_admin_utils.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/news/admin/news_admin_utils.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -30,37 +30,45 @@
 
        	// function to show single news item
        	// factored out because called 3 time below
-       	function show_news_item($result,$i,$approved,$selectable) {
+       	function show_news_item($row,$i,$approved,$selectable) {
 	        global $HTML;
 
 		echo '<tr '. $HTML->boxGetAltRowStyle($i) . '><td width="20%">';
        		if ($selectable) {
        			echo '<input type="checkbox" '
        			     .'name="news_id[]" value="'
-       			     .db_result($result, $i, 'id').'" />';
+       			     .$row['id'].'" />';
        		}
-       		echo date(_('Y-m-d'), db_result($result,$i,'post_date')).'</td>
+       		echo date(_('Y-m-d'), $row['post_date']).'</td>
        		<td width="45%">';
        		echo '
-       		<a href="'.getStringFromServer('PHP_SELF').'?approve=1&id='.db_result($result,$i,'id').'">'.db_result($result,$i,'summary').'</a>
+       		<a href="'.getStringFromServer('PHP_SELF').'?approve=1&id='.$row['id'].'">'.$row['summary'].'</a>
        		</td>
 
        		<td width="35%">'
-		.util_make_link_g (db_result($result,$i,'unix_group_name'),db_result($result,$i,'group_id'),db_result($result,$i,'group_name').' ('.db_result($result,$i,'unix_group_name').')')
+		.util_make_link_g ($row['unix_group_name'],$row['group_id'],$row['group_name'].' ('.$row['unix_group_name'].')')
        		.'</td>
        		</tr>'
        		;
        	}
 
-       	$title_arr=array(
+       	$title_arr = array(
        		_('Date'),
        		_('Subject'),
        		_('Project')
        	);
 
-       	$result=db_query_qpa($qpa_pending);
-       	$rows=db_numrows($result);
+	$ra = RoleAnonymous::getInstance() ;
 
+       	$result = db_query_qpa($qpa_pending);
+	$items = array();
+	while ($row_item = db_fetch_array($result)) {
+		if ($ra->hasPermission('project_read', $row_item['group_id'])) {
+			$items[] = $row_item;
+		}
+	}
+       	$rows = count($items);
+
        	echo '<form action="'. getStringFromServer('PHP_SELF') .'" method="post">';
        	echo '<input type="hidden" name="mass_reject" value="1" />';
        	echo '<input type="hidden" name="post_changes" value="y" />';
@@ -72,7 +80,7 @@
        		echo '<h2>'.sprintf(_('These items need to be approved (total: %1$s)'), $rows).'</h2>';
        		echo $GLOBALS['HTML']->listTableTop($title_arr);
        		for ($i=0; $i<$rows; $i++) {
-       			show_news_item($result,$i,false,true);
+       			show_news_item($items[$i],$i,false,true);
        		}
        		echo $GLOBALS['HTML']->listTableBottom();
        		echo '<br /><input type="submit" name="submit" value="'._('Reject Selected').'" />';
@@ -83,8 +91,15 @@
        		Show list of rejected news items for this week
        	*/
 
-       	$result=db_query_qpa($qpa_rejected);
-       	$rows=db_numrows($result);
+       	$result = db_query_qpa($qpa_rejected);
+	$items = array();
+	while ($row_item = db_fetch_array($result)) {
+		if ($ra->hasPermission('project_read', $row_item['group_id'])) {
+			$items[] = $row_item;
+		}
+	}
+       	$rows = count($items);
+
        	if ($rows < 1) {
        		echo '
        			<h2>'._('No rejected items found for this week').'</h2>';
@@ -92,7 +107,7 @@
        		echo '<h2>'.sprintf(_('These items were rejected this past week or were not intended for front page (total: %1$s)'), $rows).'</h2>';
        		echo $GLOBALS['HTML']->listTableTop($title_arr);
        		for ($i=0; $i<$rows; $i++) {
-       			show_news_item($result,$i,false,false);
+       			show_news_item($items[$i],$i,false,true);
        		}
        		echo $GLOBALS['HTML']->listTableBottom();
        	}
@@ -101,8 +116,14 @@
        		Show list of approved news items for this week
        	*/
 
-       	$result=db_query_qpa($qpa_approved);
-       	$rows=db_numrows($result);
+       	$result = db_query_qpa($qpa_approved);
+	$items = array();
+	while ($row_item = db_fetch_array($result)) {
+		if ($ra->hasPermission('project_read', $row_item['group_id'])) {
+			$items[] = $row_item;
+		}
+	}
+       	$rows = count($items);
        	if ($rows < 1) {
        		echo '
        			<h2>'._('No approved items found for this week').'</h2>';
@@ -110,7 +131,7 @@
        		echo '<h2>'.sprintf(_('These items were approved this past week (total: %1$s)'), $rows).'</h2>';
        		echo $GLOBALS['HTML']->listTableTop($title_arr);
        		for ($i=0; $i<$rows; $i++) {
-       			show_news_item($result,$i,true,false);
+       			show_news_item($items[$i],$i,false,true);
        		}
        		echo $GLOBALS['HTML']->listTableBottom();
        	}

Modified: trunk/src/www/search/include/renderers/ProjectHtmlSearchRenderer.class.php
===================================================================
--- trunk/src/www/search/include/renderers/ProjectHtmlSearchRenderer.class.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/search/include/renderers/ProjectHtmlSearchRenderer.class.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -61,22 +61,26 @@
 	 * @return string html output
 	 */
 	function getRows() {
-		$rowsCount = $this->searchQuery->getRowsCount();
 		$result =& $this->searchQuery->getResult();
 		
 		$return = '';
+		$i = 0;
 		
-		for($i = 0; $i < $rowsCount; $i++) {
-			if (db_result($result, $i, 'type') == 2) {
+		while ($row = db_fetch_array($result)) {
+			if (!forge_check_perm ('project_read', $row_top['group_id'])) {
+				continue ;
+			}
+			$i++;
+			if ($row['type'] == 2) {
 				$what = 'foundry';
 			} else {
 				$what = 'projects';
 			}		
 			$return .= '<tr '.$GLOBALS['HTML']->boxGetAltRowStyle($i).'>'
-				.'<td width="30%"><a href="'.util_make_url('/'.$what.'/'.db_result($result, $i, 'unix_group_name').'/').'">'
+				.'<td width="30%"><a href="'.util_make_url('/'.$what.'/'.$row['unix_group_name'].'/').'">'
 				.html_image('ic/msg.png', '10', '12')
-				.' '.$this->highlightTargetWords(db_result($result, $i, 'group_name')).'</a></td>'
-				.'<td width="70%">'.$this->highlightTargetWords(db_result($result, $i, 'short_description')).'</td></tr>';
+				.' '.$this->highlightTargetWords($row['group_name']).'</a></td>'
+				.'<td width="70%">'.$this->highlightTargetWords($row['short_description']).'</td></tr>';
 		}
 		
 		return $return;

Modified: trunk/src/www/softwaremap/full_list.php
===================================================================
--- trunk/src/www/softwaremap/full_list.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/softwaremap/full_list.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -57,24 +57,25 @@
 $res_grp = db_query_params ('
 	SELECT group_id, group_name, unix_group_name, short_description, register_time
 	FROM groups
-	WHERE status = $1 AND is_public=1 AND type_id=1 AND group_id>4 AND register_time > 0 
+	WHERE status = $1 AND type_id=1 AND group_id>4 AND register_time > 0 
 	ORDER BY group_name ASC
 ',
 			    array ('A'),
 			    $TROVE_HARDQUERYLIMIT);
-echo db_error();
-$querytotalcount = db_numrows($res_grp);
+$projects = array();
+while ($row_grp = db_fetch_array($res_grp)) {
+	if (!forge_check_perm ('project_read', $row_grp['group_id'])) {
+		continue ;
+	}
+	$projects[] = $row_grp;
+}
+$querytotalcount = count($projects);
 	
 // #################################################################
 // limit/offset display
 
-// no funny stuff with get vars
+$page = getIntFromRequest('page',1);
 
-$page = isset($_GET['page'])?$_GET['page']:FALSE;
-if (!is_numeric($page)) {
-	$page = 1;
-}
-
 // store this as a var so it can be printed later as well
 $html_limit = '<span style="text-align:center;font-size:smaller">';
 if ($querytotalcount == $TROVE_HARDQUERYLIMIT){
@@ -108,18 +109,17 @@
 
 // #################################################################
 // print actual project listings
-// note that the for loop starts at 1, not 0
-for ($i_proj=1;$i_proj<=$querytotalcount;$i_proj++) { 
-	$row_grp = db_fetch_array($res_grp);
+for ($i_proj=0;$i_proj<$querytotalcount;$i_proj++) { 
+	$row_grp = $projects[$i_proj];
 
 	// check to see if row is in page range
-	if (($i_proj > (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj <= ($page*$TROVE_BROWSELIMIT))) {
+	if (($i_proj >= (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj < ($page*$TROVE_BROWSELIMIT))) {
 		$viewthisrow = 1;
 	} else {
 		$viewthisrow = 0;
 	}	
 
-	if ($row_grp && $viewthisrow) {
+	if ($viewthisrow) {
 		
 		// Embed RDFa description for /projects/PROJ_NAME 
 		$proj_uri = util_make_url_g(strtolower($row_grp['unix_group_name']),$row_grp['group_id']);
@@ -148,12 +148,6 @@
 		print '</td>';
 		print '<td valign="bottom" style="text-align:right;"><br />'._('Register Date:').' <strong>'.date(_('Y-m-d H:i'),$row_grp['register_time']).'</strong></td>';
 		print '</tr>';
-/*
-                if ($row_grp['jobs_count']) {
-                	print '<tr><td colspan="2" align="center">'
-                              .'<a href="/people/?group_id='.$row_grp['group_id'].'">[This project needs help]</a></td></td>';
-                }
-*/
         print '</table>';
         print '</div>'; // /doap:Project
 		print '<hr />';

Modified: trunk/src/www/softwaremap/tag_cloud.php
===================================================================
--- trunk/src/www/softwaremap/tag_cloud.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/softwaremap/tag_cloud.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -59,26 +59,25 @@
 echo '<br />' . tag_cloud(array('selected' => $selected_tag, 'nb_max' => 100)) . '<br /><br />';
 
 if ($selected_tag) {
-
-	$cond_rq = '';
 	$res_grp = db_query_params('
 		SELECT groups.group_id, group_name, unix_group_name, short_description, register_time
 		FROM project_tags, groups
 		WHERE name = $1
 		AND project_tags.group_id = groups.group_id
-		AND status = $2 AND is_public=1 AND type_id=1 AND register_time > 0
+		AND status = $2 AND type_id=1 AND register_time > 0
 		ORDER BY group_name ASC', 
 		array($selected_tag, 'A'), $TROVE_HARDQUERYLIMIT);
-	$querytotalcount = db_numrows($res_grp);
-	if ($querytotalcount > 0) {
-		while ($group = db_fetch_array($res_grp)) {
-			$groups[] = "'" . $group['group_id'] . "'";
+	$projects = array();
+	$project_ids = array();
+	while ($row_grp = db_fetch_array($res_grp)) {
+		if (!forge_check_perm ('project_read', $row_grp['group_id'])) {
+			continue ;
 		}
-		$cond_rq = ' AND group_id IN (' . join(',', $groups) . ') ';
+		$projects[] = $row_grp;
+		$project_ids[] = $row_grp['group_id'];
 	}
+	$querytotalcount = count($projects);
 
-	echo db_error();
-
 	// #################################################################
 	// limit/offset display
 
@@ -119,12 +118,11 @@
 
 	// #################################################################
 	// print actual project listings
-	// note that the for loop starts at 1, not 0
-	for ($i_proj=1;$i_proj<=$querytotalcount;$i_proj++) {
-		$row_grp = db_fetch_array_by_row($res_grp, $i_proj-1);
+	for ($i_proj=0;$i_proj<=$querytotalcount;$i_proj++) {
+		$row_grp = $projects[$i_proj];
 
 		// check to see if row is in page range
-		if (($i_proj > (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj <= ($page*$TROVE_BROWSELIMIT))) {
+		if (($i_proj >= (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj < ($page*$TROVE_BROWSELIMIT))) {
 			$viewthisrow = 1;
 		} else {
 			$viewthisrow = 0;

Modified: trunk/src/www/softwaremap/trove_list.php
===================================================================
--- trunk/src/www/softwaremap/trove_list.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/softwaremap/trove_list.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -230,16 +230,22 @@
 // one listing for each project
 
 	$qpa = db_construct_qpa();
-	$qpa = db_construct_qpa($qpa, 'SELECT * FROM trove_agg') ;
-	$qpa = db_join_qpa($qpa, $qpa_alias) ;
+	$qpa = db_construct_qpa($qpa, 'SELECT * FROM trove_agg');
+	$qpa = db_join_qpa($qpa, $qpa_alias);
 	$qpa = db_construct_qpa($qpa, ' WHERE trove_agg.trove_cat_id=$1', array($form_cat));
-	$qpa = db_join_qpa($qpa, $qpa_and) ;
+	$qpa = db_join_qpa($qpa, $qpa_and);
 	$qpa = db_construct_qpa($qpa, ' ORDER BY trove_agg.trove_cat_id ASC, trove_agg.ranking ASC');
-	$res_grp = db_query_qpa($qpa, $TROVE_HARDQUERYLIMIT, 0, 'DB_TROVE');
-
-	echo db_error('DB_TROVE');
-	$querytotalcount = db_numrows($res_grp);
-
+	$res_grp = db_query_qpa($qpa, $TROVE_HARDQUERYLIMIT, 0, DB_TROVE);
+	
+	$projects = array();
+	while ($row_grp = db_fetch_array($res_grp)) {
+		if (!forge_check_perm ('project_read', $row_grp['group_id'])) {
+			continue ;
+		}
+		$projects[] = $row_grp;
+	}
+	$querytotalcount = count($projects);
+	
 	// #################################################################
 	// limit/offset display
 
@@ -248,53 +254,51 @@
 	if ($querytotalcount == $TROVE_HARDQUERYLIMIT){
 		$html_limit .= 'More than ';
 		$html_limit .= sprintf(_('More than <strong>%1$s</strong> projects in result set.'), $querytotalcount);
+		
 	}
 	$html_limit .= sprintf(ngettext('<strong>%1$s</strong> project in result set.', '<strong>%1$s</strong> projects in result set.', $querytotalcount), $querytotalcount);
-
+	
 	// only display pages stuff if there is more to display
 	if ($querytotalcount > $TROVE_BROWSELIMIT) {
 		$html_limit .= ' Displaying '.$TROVE_BROWSELIMIT.' per page. Projects sorted by activity ranking.<br />';
 
 		// display all the numbers
-		for ($i = 1; $i <= ceil($querytotalcount / $TROVE_BROWSELIMIT); $i++) {
+		for ($i=1;$i<=ceil($querytotalcount/$TROVE_BROWSELIMIT);$i++) {
 			$html_limit .= ' ';
 			$displayed_i = '<'.$i.'>';
 			if ($page == $i) {
-				$html_limit .= "<strong>$displayed_i</strong>";
+				$html_limit .= "<strong>$displayed_i</strong>" ;
 			} else {
-			$html_limit .= util_make_link('/softwaremap/trove_list.php?cat=c&form_cat='.$form_cat.$discrim_url.'&page='.$i,
-							       $displayed_i
-					) ;
+				$viewthisrow = 0;
 			}
 			$html_limit .= ' ';
 		}
 	}
-
+	
 	print $html_limit."<hr />\n";
 
 	// #################################################################
 	// print actual project listings
-	// note that the for loop starts at 1, not 0
-	for ($i_proj=1;$i_proj<=$querytotalcount;$i_proj++) {
-		$row_grp = db_fetch_array($res_grp);
-
+	for ($i_proj=0;$i_proj<$querytotalcount;$i_proj++) {
+		$row_grp = $projects[$i_proj];
+		
 		// check to see if row is in page range
-		if (($i_proj > (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj <= ($page*$TROVE_BROWSELIMIT))) {
+		if (($i_proj >= (($page-1)*$TROVE_BROWSELIMIT)) && ($i_proj < ($page*$TROVE_BROWSELIMIT))) {
 			$viewthisrow = 1;
 		} else {
 			$viewthisrow = 0;
-		}
-
+		}	
+		
 		if ($row_grp && $viewthisrow) {
 			print '<table border="0" cellpadding="0" width="100%"><tr valign="top"><td colspan="2">';
 			print "$i_proj. " ;
-			print util_make_link_g($row_grp['unix_group_name'],
-					$row_grp['group_id'],
-					"<strong>".htmlspecialchars($row_grp['group_name'])."</strong> ");
+			print util_make_link_g ($row_grp['unix_group_name'],
+						$row_grp['group_id'],
+						"<strong>".htmlspecialchars($row_grp['group_name'])."</strong> ");
 			if ($row_grp['short_description']) {
 				print "- " . htmlspecialchars($row_grp['short_description']);
 			}
-
+			
 			print '<br /> ';
 			// extra description
 			print "</td></tr>\n<tr valign=\"top\"><td>";

Modified: trunk/src/www/top/mostactive.php
===================================================================
--- trunk/src/www/top/mostactive.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/top/mostactive.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -59,6 +59,9 @@
 
 $i=0;
 while ($row_top = db_fetch_array($res_top)) {
+	if (!forge_check_perm ('project_read', $row_top['group_id'])) {
+		continue ;
+	}
 	$i++;
 	print '
 	<tr '. $HTML->boxGetAltRowStyle($i) .'>

Modified: trunk/src/www/top/toplist.php
===================================================================
--- trunk/src/www/top/toplist.php	2011-04-08 12:49:08 UTC (rev 13056)
+++ trunk/src/www/top/toplist.php	2011-04-08 13:18:56 UTC (rev 13057)
@@ -62,6 +62,9 @@
 $display_rank = 0;
 $i=0;
 while ($row_top = db_fetch_array($res_top)) {
+	if (!forge_check_perm ('project_read', $row_top['group_id'])) {
+		continue ;
+	}
 	$i++;
 	if ($row_top["items"] == 0) {
 		continue;




More information about the Fusionforge-commits mailing list