launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #00321
[Merge] lp:~bac/launchpad/bug-602773 into lp:launchpad
Brad Crittenden has proposed merging lp:~bac/launchpad/bug-602773 into lp:launchpad.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
Related bugs:
#602773 Remove PMT enum
https://bugs.launchpad.net/bugs/602773
= Summary =
Private membership teams can now be replaced by PRIVATE teams. Having
both does nothing but cause confusion.
Sorry for the super-big branch. It didn't make sense to do this piecemeal.
== Proposed fix ==
The UI was previously fixed to not allow the creation of new PMTs. This
follow-on branch removes the dbenum and all uses of PMTs.
All PMTs in the production database were converted to private teams. It
is no longer possible to create new ones if using the UI on edge. All
members of commerical-admins have been notified and asked not to create
new ones on lpnet.
Before the next rollout we must ensure no PMTs have crept back into the
database.
== Pre-implementation notes ==
Chats with Curtis.
== Implementation details ==
As above.
== Tests ==
make check
== Demo and Q/A ==
No real way to demo since the UI changes landed earlier.
= Launchpad lint =
I'll look into these lint issues but I suspect many are false.
Checking for conflicts and issues in changed files.
Linting changed files:
lib/lp/code/model/branchvisibilitypolicy.py
lib/lp/soyuz/model/archivesubscriber.py
lib/lp/translations/interfaces/potemplate.py
database/sampledata/current.sql
database/sampledata/current-dev.sql
lib/lp/bugs/model/bugsubscription.py
lib/canonical/launchpad/security.py
lib/lp/registry/vocabularies.py
lib/lp/registry/model/productseries.py
lib/lp/registry/interfaces/productrelease.py
lib/lp/registry/tests/test_user_vocabularies.py
lib/lp/code/interfaces/branch.py
lib/lp/soyuz/interfaces/archive.py
lib/lp/registry/model/productrelease.py
lib/lp/registry/doc/private-team-roles.txt
lib/lp/registry/browser/team.py
lib/lp/registry/browser/tests/mailinglist-views.txt
lib/lp/translations/model/translationimportqueue.py
lib/lp/registry/interfaces/product.py
lib/lp/registry/interfaces/structuralsubscription.py
lib/lp/registry/doc/private-team-visibility.txt
lib/lp/soyuz/interfaces/archivesubscriber.py
lib/lp/registry/doc/vocabularies.txt
lib/canonical/launchpad/fields/__init__.py
lib/canonical/launchpad/doc/tales.txt
lib/lp/code/model/branchsubscription.py
lib/lp/soyuz/browser/archivesubscription.py
lib/lp/code/model/branch.py
lib/lp/registry/interfaces/productseries.py
lib/lp/bugs/model/bugactivity.py
lib/lp/bugs/interfaces/bugsubscription.py
lib/lp/registry/model/structuralsubscription.py
lib/lp/bugs/browser/bugtask.py
lib/lp/registry/doc/person.txt
lib/lp/registry/interfaces/person.py
lib/lp/registry/model/product.py
lib/lp/soyuz/model/archive.py
lib/lp/bugs/interfaces/bugsupervisor.py
lib/lp/code/interfaces/sourcepackagerecipe.py
lib/lp/registry/browser/person.py
lib/lp/registry/model/person.py
lib/lp/code/interfaces/branchvisibilitypolicy.py
lib/lp/registry/tests/test_person.py
lib/lp/registry/tests/mailinglists_helper.py
lib/lp/code/interfaces/branchsubscription.py
lib/lp/bugs/model/bugtask.py
lib/lp/registry/model/distribution.py
lib/lp/bugs/interfaces/bugtask.py
lib/lp/translations/interfaces/translationimportqueue.py
lib/lp/soyuz/browser/archive.py
./lib/lp/translations/interfaces/potemplate.py
736: E301 expected 1 blank line, found 2
750: E301 expected 1 blank line, found 2
./lib/lp/bugs/model/bugsubscription.py
31: E202 whitespace before ')'
38: E202 whitespace before ')'
./lib/canonical/launchpad/security.py
645: E302 expected 2 blank lines, found 1
1261: E302 expected 2 blank lines, found 1
1485: E302 expected 2 blank lines, found 1
./lib/lp/registry/vocabularies.py
180: E302 expected 2 blank lines, found 1
223: E202 whitespace before ')'
231: E302 expected 2 blank lines, found 1
271: E202 whitespace before ')'
549: E202 whitespace before ')'
631: E302 expected 2 blank lines, found 1
984: E202 whitespace before ')'
1272: E202 whitespace before ']'
1411: E202 whitespace before ')'
1429: E202 whitespace before ')'
1508: E301 expected 1 blank line, found 0
./lib/lp/registry/interfaces/productrelease.py
213: E202 whitespace before ')'
260: E202 whitespace before ')'
269: E202 whitespace before ')'
277: E202 whitespace before ')'
301: E202 whitespace before ')'
307: E202 whitespace before ')'
323: E202 whitespace before ')'
360: E302 expected 2 blank lines, found 1
./lib/lp/code/interfaces/branch.py
1113: Line exceeds 78 characters.
./lib/lp/soyuz/interfaces/archive.py
528: E301 expected 1 blank line, found 0
545: E202 whitespace before ')'
570: E501 line too long (81 characters)
572: E501 line too long (80 characters)
577: E501 line too long (81 characters)
580: E501 line too long (80 characters)
655: E301 expected 1 blank line, found 0
678: E301 expected 1 blank line, found 0
701: E301 expected 1 blank line, found 0
801: E301 expected 1 blank line, found 0
1138: E302 expected 2 blank lines, found 1
1435: E301 expected 1 blank line, found 2
1664: E303 too many blank lines (3)
521: Line exceeds 78 characters.
570: Line exceeds 78 characters.
572: Line exceeds 78 characters.
577: Line exceeds 78 characters.
580: Line exceeds 78 characters.
1449: Line exceeds 78 characters.
./lib/lp/registry/browser/team.py
128: E241 multiple spaces after ','
./lib/lp/translations/model/translationimportqueue.py
1235: E202 whitespace before ']'
./lib/lp/registry/interfaces/product.py
899: E301 expected 1 blank line, found 2
./lib/lp/registry/interfaces/structuralsubscription.py
52: E501 line too long (106 characters)
58: E501 line too long (130 characters)
64: E501 line too long (149 characters)
83: E501 line too long (125 characters)
89: E501 line too long (143 characters)
52: Line exceeds 78 characters.
58: Line exceeds 78 characters.
64: Line exceeds 78 characters.
83: Line exceeds 78 characters.
89: Line exceeds 78 characters.
./lib/lp/registry/doc/private-team-visibility.txt
41: want exceeds 78 characters.
46: want exceeds 78 characters.
66: want exceeds 78 characters.
92: want exceeds 78 characters.
./lib/lp/soyuz/interfaces/archivesubscriber.py
15: E202 whitespace before ']'
112: E302 expected 2 blank lines, found 1
./lib/lp/registry/doc/vocabularies.txt
0: narrative uses a moin header.
23: narrative uses a moin header.
181: narrative uses a moin header.
225: narrative uses a moin header.
311: narrative uses a moin header.
336: narrative uses a moin header.
494: narrative uses a moin header.
508: narrative uses a moin header.
542: narrative uses a moin header.
583: narrative uses a moin header.
601: narrative uses a moin header.
692: narrative uses a moin header.
711: narrative uses a moin header.
743: narrative uses a moin header.
949: narrative uses a moin header.
1050: narrative uses a moin header.
1101: narrative uses a moin header.
1143: narrative uses a moin header.
1187: narrative uses a moin header.
1248: narrative uses a moin header.
1311: narrative uses a moin header.
1346: narrative uses a moin header.
./lib/canonical/launchpad/fields/__init__.py
89: E302 expected 2 blank lines, found 1
218: E302 expected 2 blank lines, found 1
238: E302 expected 2 blank lines, found 1
244: E302 expected 2 blank lines, found 1
254: E302 expected 2 blank lines, found 1
265: E302 expected 2 blank lines, found 1
341: E301 expected 1 blank line, found 0
545: E302 expected 2 blank lines, found 1
174: Line exceeds 78 characters.
./lib/lp/soyuz/browser/archivesubscription.py
204: E202 whitespace before ')'
316: E202 whitespace before '}'
./lib/lp/registry/model/structuralsubscription.py
108: W602 deprecated form of raising exception
113: E301 expected 1 blank line, found 0
241: E231 missing whitespace after ','
./lib/lp/bugs/browser/bugtask.py
174: E301 expected 1 blank line, found 0
183: E302 expected 2 blank lines, found 1
187: E301 expected 1 blank line, found 0
197: E302 expected 2 blank lines, found 1
208: E302 expected 2 blank lines, found 1
221: W601 .has_key() is deprecated, use 'in'
989: E202 whitespace before '}'
1357: E231 missing whitespace after ','
1732: E241 multiple spaces after ','
2173: E301 expected 1 blank line, found 2
2254: E231 missing whitespace after ','
2818: E203 whitespace before ':'
2971: E302 expected 2 blank lines, found 3
3035: E231 missing whitespace after ','
3292: E202 whitespace before ')'
3771: E301 expected 1 blank line, found 0
1115: Line exceeds 78 characters.
2096: Line exceeds 78 characters.
./lib/lp/registry/interfaces/person.py
134: E301 expected 1 blank line, found 0
447: E302 expected 2 blank lines, found 1
./lib/lp/registry/model/product.py
83: 'IBranchSet' imported but unused
81: 'shortlist' imported but unused
./lib/lp/soyuz/model/archive.py
338: E203 whitespace before ':'
433: E231 missing whitespace after ','
503: E231 missing whitespace after ','
545: E231 missing whitespace after ','
570: E211 whitespace before '('
617: E231 missing whitespace after ','
626: E231 missing whitespace after ','
650: E203 whitespace before ','
722: E202 whitespace before ']'
752: E203 whitespace before ':'
777: E301 expected 1 blank line, found 0
916: E202 whitespace before ')'
924: E202 whitespace before ')'
957: E202 whitespace before '}'
1671: E301 expected 1 blank line, found 2
1780: E301 expected 1 blank line, found 2
1854: E231 missing whitespace after ','
1979: E231 missing whitespace after ','
./lib/lp/code/interfaces/sourcepackagerecipe.py
31: E202 whitespace before ')'
58: E231 missing whitespace after ','
135: E202 whitespace before ')'
135: E231 missing whitespace after ','
./lib/lp/registry/tests/test_person.py
29: 'BugSubscription' imported but unused
29: 'BugTask' imported but unused
./lib/lp/registry/tests/mailinglists_helper.py
48: E301 expected 1 blank line, found 0
./lib/lp/code/interfaces/branchsubscription.py
75: E202 whitespace before ')'
./lib/lp/bugs/model/bugtask.py
96: E241 multiple spaces after ':'
96: E222 multiple spaces after operator
147: E302 expected 2 blank lines, found 1
194: E301 expected 1 blank line, found 0
399: E202 whitespace before '}'
415: E301 expected 1 blank line, found 0
481: E231 missing whitespace after ','
527: E221 multiple spaces before operator
588: E222 multiple spaces after operator
774: W602 deprecated form of raising exception
833: E231 missing whitespace after ','
1103: E222 multiple spaces after operator
1105: E222 multiple spaces after operator
1669: E501 line too long (80 characters)
1645: E201 whitespace after '('
1746: E501 line too long (80 characters)
1838: E231 missing whitespace after ','
1669: Line exceeds 78 characters.
1672: Line exceeds 78 characters.
1746: Line exceeds 78 characters.
./lib/lp/registry/model/distribution.py
204: E301 expected 1 blank line, found 2
450: E203 whitespace before ':'
665: E222 multiple spaces after operator
990: E202 whitespace before ')'
998: E202 whitespace before ']'
1039: E202 whitespace before ')'
1059: E202 whitespace before ')'
1092: E231 missing whitespace after ','
1096: E231 missing whitespace after ','
1108: E231 missing whitespace after ','
1124: E202 whitespace before ')'
1372: E203 whitespace before ':'
./lib/lp/soyuz/browser/archive.py
295: E301 expected 1 blank line, found 0
374: E301 expected 1 blank line, found 0
525: E301 expected 1 blank line, found 0
633: E301 expected 1 blank line, found 2
740: W601 .has_key() is deprecated, use 'in'
921: E202 whitespace before '}'
1163: E302 expected 2 blank lines, found 1
1863: E302 expected 2 blank lines, found 1
1919: E222 multiple spaces after operator
--
https://code.launchpad.net/~bac/launchpad/bug-602773/+merge/31162
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~bac/launchpad/bug-602773 into lp:launchpad.
=== modified file 'database/sampledata/current-dev.sql'
--- database/sampledata/current-dev.sql 2010-07-27 18:36:16 +0000
+++ database/sampledata/current-dev.sql 2010-07-28 15:06:10 +0000
@@ -4180,7 +4180,7 @@
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243609, 'Katie', NULL, NULL, 'katie', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-07 13:43:20.393704', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243609);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243610, 'Gold Member', NULL, NULL, 'member', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243610);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243611, 'Owner', NULL, NULL, 'owner', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243611);
-INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 20, false, NULL);
+INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 30, false, NULL);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243613, 'Other Team', 243611, NULL, 'otherteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243614, 'josh', NULL, NULL, 'jbuhl-nospam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243614);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243615, 'Sjoerd Simons', NULL, NULL, 'sjoerd', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243615);
@@ -5467,7 +5467,7 @@
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243609, 'Katie', NULL, NULL, 'katie', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-07 13:43:20.393704', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243609);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243610, 'Gold Member', NULL, NULL, 'member', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243610);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243611, 'Owner', NULL, NULL, 'owner', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243611);
-INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 20, false, NULL);
+INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 30, false, NULL);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243613, 'Other Team', 243611, NULL, 'otherteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243614, 'josh', NULL, NULL, 'jbuhl-nospam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243614);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243615, 'Sjoerd Simons', NULL, NULL, 'sjoerd', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 243615);
=== modified file 'database/sampledata/current.sql'
--- database/sampledata/current.sql 2010-07-27 18:36:16 +0000
+++ database/sampledata/current.sql 2010-07-28 15:06:10 +0000
@@ -4139,7 +4139,7 @@
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243609, 'Katie', NULL, NULL, 'katie', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-07 13:43:20.393704', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436091);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243610, 'Gold Member', NULL, NULL, 'member', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436101);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243611, 'Owner', NULL, NULL, 'owner', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436111);
-INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 20, false, NULL);
+INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 30, false, NULL);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243613, 'Other Team', 243611, NULL, 'otherteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243614, 'josh', NULL, NULL, 'jbuhl-nospam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436141);
INSERT INTO lp_person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, addressline1, addressline2, organization, city, province, country, postcode, phone, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243615, 'Sjoerd Simons', NULL, NULL, 'sjoerd', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436151);
@@ -5374,7 +5374,7 @@
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243609, 'Katie', NULL, NULL, 'katie', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-07 13:43:20.393704', NULL, NULL, NULL, false, 8, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436091);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243610, 'Gold Member', NULL, NULL, 'member', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436101);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243611, 'Owner', NULL, NULL, 'owner', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, 1, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436111);
-INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 20, false, NULL);
+INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243612, 'My Team', 243611, NULL, 'myteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 30, false, NULL);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243613, 'Other Team', 243611, NULL, 'otherteam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-14 16:52:15.403833', NULL, NULL, NULL, false, NULL, NULL, NULL, NULL, 10, 0, NULL, NULL, 1, true, 1, false, NULL);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243614, 'josh', NULL, NULL, 'jbuhl-nospam', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436141);
INSERT INTO person (id, displayname, teamowner, teamdescription, name, language, fti, defaultmembershipperiod, defaultrenewalperiod, subscriptionpolicy, merged, datecreated, homepage_content, icon, mugshot, hide_email_addresses, creation_rationale, creation_comment, registrant, logo, renewal_policy, personal_standing, personal_standing_reason, mail_resumption_date, mailing_list_auto_subscribe_policy, mailing_list_receive_duplicates, visibility, verbose_bugnotifications, account) VALUES (243615, 'Sjoerd Simons', NULL, NULL, 'sjoerd', NULL, NULL, NULL, NULL, 1, NULL, '2007-12-18 16:31:34.790641', NULL, NULL, NULL, false, 15, 'when the comments for debbugs #308994 were imported into Launchpad.', 62, NULL, 10, 0, NULL, NULL, 1, true, 1, false, 2436151);
=== modified file 'lib/canonical/launchpad/doc/tales.txt'
--- lib/canonical/launchpad/doc/tales.txt 2010-07-15 08:38:19 +0000
+++ lib/canonical/launchpad/doc/tales.txt 2010-07-28 15:06:10 +0000
@@ -1566,7 +1566,7 @@
data for link, displayname, and unique_displayname if the current user
has the appropriate privileges.
-The team 'myteam' is a private membership team so only the team members
+The team 'myteam' is a private team so only the team members
and Launchpad admins can see the details.
Foo Bar is an administrator so he can see all.
=== modified file 'lib/canonical/launchpad/fields/__init__.py'
--- lib/canonical/launchpad/fields/__init__.py 2010-07-22 12:17:41 +0000
+++ lib/canonical/launchpad/fields/__init__.py 2010-07-28 15:06:10 +0000
@@ -34,7 +34,6 @@
'MugshotImageUpload',
'NoneableDescription',
'NoneableTextLine',
- 'ParticipatingPersonChoice',
'PasswordField',
'PersonChoice',
'PillarAliases',
@@ -53,7 +52,6 @@
'URIField',
'UniqueField',
'Whiteboard',
- 'is_private_membership_person',
'is_public_person',
]
@@ -766,14 +764,6 @@
return person.visibility == PersonVisibility.PUBLIC
-def is_private_membership_person(person):
- """True if the person/team has private membership visibility."""
- from canonical.launchpad.interfaces import IPerson, PersonVisibility
- if not IPerson.providedBy(person):
- return False
- return person.visibility == PersonVisibility.PRIVATE_MEMBERSHIP
-
-
class PrivateTeamNotAllowed(ConstraintNotSatisfied):
__doc__ = _("A private team is not allowed.")
@@ -801,20 +791,3 @@
else:
# The vocabulary prevents the revealing of private team names.
raise PrivateTeamNotAllowed(value)
-
-
-class ParticipatingPersonChoice(PersonChoice):
- """A person or team who is not a private membership team.
-
- A person can participate in all contexts. A PRIVATE team can participate
- in many contexts, depending up on the permissions of the logged in
- user. A PRIVATE MEMBERSHIP team is severely limited in the roles in which
- it can participate.
- """
-
- def constraint(self, value):
- if not is_private_membership_person(value):
- return True
- else:
- # The vocabulary prevents the revealing of private team names.
- raise PrivateMembershipTeamNotAllowed(value)
=== modified file 'lib/canonical/launchpad/security.py'
--- lib/canonical/launchpad/security.py 2010-07-26 19:22:16 +0000
+++ lib/canonical/launchpad/security.py 2010-07-28 15:06:10 +0000
@@ -654,7 +654,7 @@
"""Verify that the user can view the team's membership.
Anyone can see a public team's membership. Only a team member or
- a Launchpad admin can view a private membership.
+ a Launchpad admin can view a private team.
"""
if self.obj.team.visibility == PersonVisibility.PUBLIC:
return True
@@ -708,9 +708,9 @@
class ViewPublicOrPrivateTeamMembers(AuthorizationBase):
- """Restrict viewing of private memberships of teams.
+ """Restrict viewing of private teams.
- Only members of a team with a private membership can view the
+ Only members of a private team can view the
membership list.
"""
permission = 'launchpad.View'
@@ -726,7 +726,7 @@
"""Verify that the user can view the team's membership.
Anyone can see a public team's membership. Only a team member
- or a Launchpad admin can view a private membership.
+ or a Launchpad admin can view a private team's members.
"""
if self.obj.visibility == PersonVisibility.PUBLIC:
return True
@@ -2068,8 +2068,7 @@
class ViewArchive(AuthorizationBase):
"""Restrict viewing of private archives.
- Only admins or members of a team with a private membership can
- view the archive.
+ Only admins or members of a private team can view the archive.
"""
permission = 'launchpad.View'
usedfor = IArchive
=== modified file 'lib/lp/bugs/browser/bugtask.py'
--- lib/lp/bugs/browser/bugtask.py 2010-07-15 07:39:09 +0000
+++ lib/lp/bugs/browser/bugtask.py 2010-07-28 15:06:10 +0000
@@ -88,7 +88,7 @@
from canonical.database.sqlbase import cursor
from canonical.launchpad import _
from canonical.cachedproperty import cachedproperty
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from canonical.launchpad.mailnotification import get_unified_diff
from canonical.launchpad.validators import LaunchpadValidationError
from canonical.launchpad.webapp import (
@@ -1502,7 +1502,7 @@
self.form_fields.get('assignee', False)):
# Make the assignee field editable
self.form_fields = self.form_fields.omit('assignee')
- self.form_fields += formlib.form.Fields(ParticipatingPersonChoice(
+ self.form_fields += formlib.form.Fields(PersonChoice(
__name__='assignee', title=_('Assigned to'), required=False,
vocabulary=get_assignee_vocabulary(self.context),
readonly=False))
=== modified file 'lib/lp/bugs/interfaces/bugsubscription.py'
--- lib/lp/bugs/interfaces/bugsubscription.py 2010-03-22 23:02:50 +0000
+++ lib/lp/bugs/interfaces/bugsubscription.py 2010-07-28 15:06:10 +0000
@@ -14,7 +14,7 @@
from zope.interface import Interface, Attribute
from zope.schema import Int, Datetime
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lp.bugs.interfaces.bug import IBug
from lazr.restful.declarations import (
@@ -22,13 +22,14 @@
export_read_operation, exported)
from lazr.restful.fields import Reference
+
class IBugSubscription(Interface):
"""The relationship between a person and a bug."""
export_as_webservice_entry()
id = Int(title=_('ID'), readonly=True, required=True)
- person = exported(ParticipatingPersonChoice(
+ person = exported(PersonChoice(
title=_('Person'), required=True, vocabulary='ValidPersonOrTeam',
readonly=True, description=_("The person's Launchpad ID or "
"e-mail address.")))
@@ -36,7 +37,7 @@
IBug, title=_("Bug"), required=True, readonly=True))
date_created = exported(
Datetime(title=_('Date subscribed'), required=True, readonly=True))
- subscribed_by = exported(ParticipatingPersonChoice(
+ subscribed_by = exported(PersonChoice(
title=_('Subscribed by'), required=True,
vocabulary='ValidPersonOrTeam', readonly=True,
description=_("The person who created this subscription.")))
=== modified file 'lib/lp/bugs/interfaces/bugsupervisor.py'
--- lib/lp/bugs/interfaces/bugsupervisor.py 2010-06-16 17:55:37 +0000
+++ lib/lp/bugs/interfaces/bugsupervisor.py 2010-07-28 15:06:10 +0000
@@ -12,7 +12,7 @@
]
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from zope.interface import Interface
@@ -24,7 +24,7 @@
class IHasBugSupervisor(Interface):
- bug_supervisor = exported(ParticipatingPersonChoice(
+ bug_supervisor = exported(PersonChoice(
title=_("Bug Supervisor"),
description=_(
"The Launchpad id of the person or team (preferred) responsible "
=== modified file 'lib/lp/bugs/interfaces/bugtask.py'
--- lib/lp/bugs/interfaces/bugtask.py 2010-07-26 12:49:23 +0000
+++ lib/lp/bugs/interfaces/bugtask.py 2010-07-28 15:06:10 +0000
@@ -57,7 +57,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
- BugField, ParticipatingPersonChoice, ProductNameField, SearchTag,
+ BugField, PersonChoice, ProductNameField, SearchTag,
StrippedTextLine, Summary)
from lp.bugs.interfaces.bugwatch import (
IBugWatch, IBugWatchSet, NoBugTrackerFound, UnrecognizedBugTrackerURL)
@@ -437,7 +437,7 @@
statusexplanation = Text(
title=_("Status notes (optional)"), required=False)
assignee = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Assigned to'), required=False,
vocabulary='ValidAssignee',
readonly=True))
=== modified file 'lib/lp/bugs/model/bugactivity.py'
--- lib/lp/bugs/model/bugactivity.py 2009-06-25 00:40:31 +0000
+++ lib/lp/bugs/model/bugactivity.py 2010-07-28 15:06:10 +0000
@@ -14,8 +14,7 @@
from lp.bugs.interfaces.bugactivity import IBugActivity, IBugActivitySet
from canonical.database.sqlbase import SQLBase
from canonical.database.datetimecol import UtcDateTimeCol
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
class BugActivity(SQLBase):
@@ -28,7 +27,7 @@
datechanged = UtcDateTimeCol(notNull=True)
person = ForeignKey(
dbName='person', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True)
whatchanged = StringCol(notNull=True)
oldvalue = StringCol(default=None)
=== modified file 'lib/lp/bugs/model/bugsubscription.py'
--- lib/lp/bugs/model/bugsubscription.py 2010-03-22 23:02:50 +0000
+++ lib/lp/bugs/model/bugsubscription.py 2010-07-28 15:06:10 +0000
@@ -15,8 +15,7 @@
from canonical.database.sqlbase import SQLBase
from lp.bugs.interfaces.bugsubscription import IBugSubscription
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
class BugSubscription(SQLBase):
@@ -28,14 +27,14 @@
person = ForeignKey(
dbName='person', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True
)
bug = ForeignKey(dbName='bug', foreignKey='Bug', notNull=True)
date_created = UtcDateTimeCol(notNull=True, default=UTC_NOW)
subscribed_by = ForeignKey(
dbName='subscribed_by', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True
)
=== modified file 'lib/lp/bugs/model/bugtask.py'
--- lib/lp/bugs/model/bugtask.py 2010-07-21 08:15:49 +0000
+++ lib/lp/bugs/model/bugtask.py 2010-07-28 15:06:10 +0000
@@ -88,8 +88,7 @@
from canonical.launchpad.searchbuilder import (
all, any, greater_than, NULL, not_equals)
from lp.registry.interfaces.person import (
- IPerson, validate_person_not_private_membership,
- validate_public_person)
+ IPerson, validate_person, validate_public_person)
from canonical.launchpad.webapp.interfaces import (
IStoreSelector, DEFAULT_FLAVOR, MAIN_STORE, SLAVE_FLAVOR, NotFoundError)
@@ -455,7 +454,7 @@
def validate_assignee(self, attr, value):
value = validate_conjoined_attribute(self, attr, value)
# Check if this assignee is public.
- return validate_person_not_private_membership(self, attr, value)
+ return validate_person(self, attr, value)
@block_implicit_flushes
=== modified file 'lib/lp/code/interfaces/branch.py'
--- lib/lp/code/interfaces/branch.py 2010-07-26 09:15:31 +0000
+++ lib/lp/code/interfaces/branch.py 2010-07-28 15:06:10 +0000
@@ -56,7 +56,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
- ParticipatingPersonChoice, PublicPersonChoice, URIField, Whiteboard)
+ PersonChoice, PublicPersonChoice, URIField, Whiteboard)
from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
from canonical.launchpad.validators import LaunchpadValidationError
from canonical.launchpad.webapp.interfaces import (
@@ -361,7 +361,7 @@
vocabulary='ValidPersonOrTeam'))
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Owner'),
required=True, readonly=True,
vocabulary='UserTeamsParticipationPlusSelf',
=== modified file 'lib/lp/code/interfaces/branchsubscription.py'
--- lib/lp/code/interfaces/branchsubscription.py 2010-05-28 04:18:17 +0000
+++ lib/lp/code/interfaces/branchsubscription.py 2010-07-28 15:06:10 +0000
@@ -19,7 +19,7 @@
BranchSubscriptionDiffSize, BranchSubscriptionNotificationLevel,
CodeReviewNotificationLevel)
from lp.code.interfaces.branch import IBranch
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lazr.restful.declarations import (
REQUEST_USER, call_with, export_as_webservice_entry,
export_read_operation, exported)
@@ -32,7 +32,7 @@
id = Int(title=_('ID'), readonly=True, required=True)
person = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Person'), required=True, vocabulary='ValidPersonOrTeam',
readonly=True, description=_('Enter the launchpad id, or email '
'address of the person you wish to subscribe to this branch. '
@@ -75,7 +75,7 @@
'notifications.'
)))
- subscribed_by = exported(ParticipatingPersonChoice(
+ subscribed_by = exported(PersonChoice(
title=_('Subscribed by'), required=True,
vocabulary='ValidPersonOrTeam', readonly=True,
description=_("The person who created this subscription.")))
=== modified file 'lib/lp/code/interfaces/branchvisibilitypolicy.py'
--- lib/lp/code/interfaces/branchvisibilitypolicy.py 2010-04-16 15:06:55 +0000
+++ lib/lp/code/interfaces/branchvisibilitypolicy.py 2010-07-28 15:06:10 +0000
@@ -17,7 +17,7 @@
from zope.schema import Choice
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lp.code.enums import TeamBranchVisibilityRule
@@ -89,7 +89,7 @@
The team may be null, in which case the rule applies to everyone.
"""
- team = ParticipatingPersonChoice(
+ team = PersonChoice(
title=_('Team'), required=True, vocabulary='ValidPersonOrTeam',
description=_("Specifies the team that the policy applies to. "
"If None then the policy applies to everyone."))
=== modified file 'lib/lp/code/interfaces/sourcepackagerecipe.py'
--- lib/lp/code/interfaces/sourcepackagerecipe.py 2010-06-18 07:54:36 +0000
+++ lib/lp/code/interfaces/sourcepackagerecipe.py 2010-07-28 15:06:10 +0000
@@ -28,7 +28,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
- ParticipatingPersonChoice, PublicPersonChoice
+ PersonChoice, PublicPersonChoice
)
from canonical.launchpad.validators.name import name_validator
@@ -84,7 +84,7 @@
vocabulary='ValidPersonOrTeam'))
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Owner'),
required=True, readonly=False,
vocabulary='UserTeamsParticipationPlusSelf',
=== modified file 'lib/lp/code/model/branch.py'
--- lib/lp/code/model/branch.py 2010-07-26 09:15:31 +0000
+++ lib/lp/code/model/branch.py 2010-07-28 15:06:10 +0000
@@ -80,7 +80,7 @@
IFindOfficialBranchLinks)
from lp.codehosting.bzrutils import safe_open
from lp.registry.interfaces.person import (
- validate_person_not_private_membership, validate_public_person)
+ validate_person, validate_public_person)
from lp.services.database.prejoin import prejoin
from lp.services.job.interfaces.job import JobStatus
from lp.services.mail.notificationrecipientset import (
@@ -127,7 +127,7 @@
storm_validator=validate_public_person, notNull=True)
owner = ForeignKey(
dbName='owner', foreignKey='Person',
- storm_validator=validate_person_not_private_membership, notNull=True)
+ storm_validator=validate_person, notNull=True)
def setOwner(self, new_owner, user):
"""See `IBranch`."""
=== modified file 'lib/lp/code/model/branchsubscription.py'
--- lib/lp/code/model/branchsubscription.py 2010-05-28 04:18:17 +0000
+++ lib/lp/code/model/branchsubscription.py 2010-07-28 15:06:10 +0000
@@ -21,8 +21,7 @@
from lp.code.interfaces.branch import IBranchNavigationMenu
from lp.code.interfaces.branchtarget import IHasBranchTarget
from lp.code.security import BranchSubscriptionEdit
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
class BranchSubscription(SQLBase):
@@ -34,7 +33,7 @@
person = ForeignKey(
dbName='person', foreignKey='Person',
- storm_validator=validate_person_not_private_membership, notNull=True)
+ storm_validator=validate_person, notNull=True)
branch = ForeignKey(dbName='branch', foreignKey='Branch', notNull=True)
notification_level = EnumCol(enum=BranchSubscriptionNotificationLevel,
notNull=True, default=DEFAULT)
@@ -44,7 +43,7 @@
notNull=True, default=DEFAULT)
subscribed_by = ForeignKey(
dbName='subscribed_by', foreignKey='Person',
- storm_validator=validate_person_not_private_membership, notNull=True)
+ storm_validator=validate_person, notNull=True)
@property
def target(self):
=== modified file 'lib/lp/code/model/branchvisibilitypolicy.py'
--- lib/lp/code/model/branchvisibilitypolicy.py 2010-04-19 09:39:29 +0000
+++ lib/lp/code/model/branchvisibilitypolicy.py 2010-07-28 15:06:10 +0000
@@ -25,8 +25,7 @@
from lp.code.enums import BranchVisibilityRule
from lp.code.interfaces.branchvisibilitypolicy import (
IBranchVisibilityTeamPolicy, InvalidVisibilityPolicy)
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
from lp.registry.interfaces.product import IProduct
from lp.registry.interfaces.projectgroup import IProjectGroup
@@ -41,7 +40,7 @@
product = ForeignKey(dbName='product', foreignKey='Product')
team = ForeignKey(
dbName='team', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
default=None)
rule = EnumCol(
dbName="policy", enum=BranchVisibilityRule, notNull=True,
=== modified file 'lib/lp/registry/browser/person.py'
--- lib/lp/registry/browser/person.py 2010-07-16 16:14:39 +0000
+++ lib/lp/registry/browser/person.py 2010-07-28 15:06:10 +0000
@@ -3326,8 +3326,6 @@
def visibility_info(self):
if self.context.visibility == PersonVisibility.PRIVATE:
return 'Private team'
- elif self.context.visibility == PersonVisibility.PRIVATE_MEMBERSHIP:
- return 'Team membership is viewable by team members'
else:
return 'Public team'
@@ -3599,8 +3597,8 @@
def add_ssh(self):
sshkey = self.request.form.get('sshkey')
- try:
- getUtility(ISSHKeySet).new(self.user, sshkey)
+ try:
+ getUtility(ISSHKeySet).new(self.user, sshkey)
except SSHKeyAdditionError:
self.error_message = structured('Invalid public key')
except SSHKeyCompromisedError:
@@ -4004,12 +4002,11 @@
and this team's visibility is either None or PUBLIC.
"""
# Joining a moderated team will put you on the proposed_members
- # list. If it is a private membership team, you are not allowed
- # to view the proposed_members attribute until you are an
- # active member; therefore, it would look like the join button
- # is broken. Either private membership teams should always have a
- # restricted subscription policy, or we need a more complicated
- # permission model.
+ # list. If it is a private team, you are not allowed to view the
+ # proposed_members attribute until you are an active member;
+ # therefore, it would look like the join button is broken. Either
+ # private teams should always have a restricted subscription policy,
+ # or we need a more complicated permission model.
if not (self.context.visibility is None
or self.context.visibility == PersonVisibility.PUBLIC):
return False
=== modified file 'lib/lp/registry/browser/team.py'
--- lib/lp/registry/browser/team.py 2010-07-16 16:14:39 +0000
+++ lib/lp/registry/browser/team.py 2010-07-28 15:06:10 +0000
@@ -166,28 +166,6 @@
"""Remove the visibility field if not authorized."""
if not check_permission('launchpad.Commercial', self.context):
self.form_fields = self.form_fields.omit('visibility')
- else:
- # XXX: BradCrittenden 2010-07-12 bug=602773: This code can be
- # removed when PRIVATE_MEMBERSHIP disappears fully.
-
- # Remove the visibility selector and replace with one with a more
- # limited vocabulary.
- terms = [SimpleTerm(PersonVisibility.PUBLIC,
- PersonVisibility.PUBLIC.name,
- PersonVisibility.PUBLIC.title),
- SimpleTerm(PersonVisibility.PRIVATE,
- PersonVisibility.PRIVATE.name,
- PersonVisibility.PRIVATE.title),
- ]
- visibility = self.form_fields['visibility'].field
- field = Choice(
- __name__=visibility.getName(),
- title=visibility.title,
- source=SimpleVocabulary(terms))
- self.form_fields = (
- self.form_fields.omit('visibility') +
- form.Fields(field))
- self.form_fields = self.form_fields.select(*self.field_names)
class TeamEditView(TeamFormMixin, HasRenewalPolicyMixin,
=== modified file 'lib/lp/registry/browser/tests/mailinglist-views.txt'
--- lib/lp/registry/browser/tests/mailinglist-views.txt 2010-07-12 16:29:33 +0000
+++ lib/lp/registry/browser/tests/mailinglist-views.txt 2010-07-28 15:06:10 +0000
@@ -186,7 +186,7 @@
generates an Unauthorized exception which is turned into a NotFound in
publication so as to fool the wily hackers.
- >>> # Create a private membership team.
+ >>> # Create a private team.
>>> owner = person_set.getByEmail('owner@xxxxxxxxxxxxx')
>>> login('foo.bar@xxxxxxxxxxxxx')
>>> from lp.registry.interfaces.person import PersonVisibility
=== modified file 'lib/lp/registry/doc/person.txt'
--- lib/lp/registry/doc/person.txt 2010-07-16 13:34:38 +0000
+++ lib/lp/registry/doc/person.txt 2010-07-28 15:06:10 +0000
@@ -919,7 +919,7 @@
Warty Gnome Team (warty-gnome): []
Warty Security Team (name20): []
-The Owner user is a member of the private membership team 'myteam' so
+The Owner user is a member of the private team 'myteam' so
the previous search will include myteam in the results.
>>> login('owner@xxxxxxxxxxxxx')
=== modified file 'lib/lp/registry/doc/private-team-roles.txt'
--- lib/lp/registry/doc/private-team-roles.txt 2010-07-14 07:32:46 +0000
+++ lib/lp/registry/doc/private-team-roles.txt 2010-07-28 15:06:10 +0000
@@ -315,7 +315,7 @@
>>> private = PersonVisibility.PRIVATE
>>> visibility_list = list(PersonVisibility.items)
- >>> visibility_list.remove(PersonVisibility.PRIVATE_MEMBERSHIP)
+
>>> for joined in visibility_list:
... for joiner in visibility_list:
... join_team(joined, joiner)
=== modified file 'lib/lp/registry/doc/private-team-visibility.txt'
--- lib/lp/registry/doc/private-team-visibility.txt 2010-01-05 17:46:08 +0000
+++ lib/lp/registry/doc/private-team-visibility.txt 2010-07-28 15:06:10 +0000
@@ -2,9 +2,8 @@
Private team visibility
=========================
-Private and private membership teams restrict the visibility of their
-attributes to select sets of users in order to prevent leaking
-confidential data.
+Private teams restrict the visibility of their attributes to select
+sets of users in order to prevent leaking confidential data.
Private teams restrict the viewing of the membership list
to team administrators, other members of the team, and Launchpad
=== modified file 'lib/lp/registry/doc/vocabularies.txt'
--- lib/lp/registry/doc/vocabularies.txt 2010-07-20 10:08:02 +0000
+++ lib/lp/registry/doc/vocabularies.txt 2010-07-28 15:06:10 +0000
@@ -769,7 +769,7 @@
Almost all teams have the word 'team' as part of their names, so a search
for 'team' should give us some of them. Notice that the
-PRIVATE_MEMBERSHIP_TEAM 'myteam' is not included in the results.
+PRIVATE_TEAM 'myteam' is not included in the results.
>>> login_person(sample_person)
>>> ephemeral = factory.makeTeam(owner=foo_bar, name='ephemeral-team')
@@ -791,15 +791,6 @@
u'testing-spanish-team', u'ubuntu-security', u'ubuntu-team',
u'warty-gnome']
-Logging in as 'owner', who is a member of myteam shows that the token
-lookup still omits myteam.
-
- >>> login('owner@xxxxxxxxxxxxx')
- >>> sorted(person.name for person in vocab.search('team'))
- [u'hwdb-team', u'name18', u'name20', u'name21', u'no-team-memberships',
- u'otherteam', u'simple-team', u'testing-spanish-team',
- u'ubuntu-security', u'ubuntu-team', u'warty-gnome']
-
A PRIVATE team is displayed when the logged in user is a member of the team.
>>> commercial = person_set.getByEmail('commercial-member@xxxxxxxxxxxxx')
@@ -836,9 +827,10 @@
>>> login('owner@xxxxxxxxxxxxx')
>>> sorted(person.name for person in vocab.search('team'))
- [u'hwdb-team', u'name18', u'name20', u'name21', u'no-team-memberships',
- u'otherteam', u'simple-team', u'testing-spanish-team',
- u'ubuntu-security', u'ubuntu-team', u'warty-gnome']
+ [u'hwdb-team', u'myteam', u'name18', u'name20', u'name21',
+ u'no-team-memberships', u'otherteam', u'simple-team',
+ u'testing-spanish-team', u'ubuntu-security', u'ubuntu-team',
+ u'warty-gnome']
The anonymous user will not see the private team either.
=== modified file 'lib/lp/registry/interfaces/person.py'
--- lib/lp/registry/interfaces/person.py 2010-07-16 21:55:55 +0000
+++ lib/lp/registry/interfaces/person.py 2010-07-28 15:06:10 +0000
@@ -37,7 +37,7 @@
'TeamContactMethod',
'TeamMembershipRenewalPolicy',
'TeamSubscriptionPolicy',
- 'validate_person_not_private_membership',
+ 'validate_person',
'validate_public_person',
]
@@ -67,7 +67,7 @@
from canonical.launchpad.fields import (
BlacklistableContentNameField, IconImageUpload, LogoImageUpload,
MugshotImageUpload, PasswordField, PersonChoice, PublicPersonChoice,
- StrippedTextLine, is_private_membership_person, is_public_person)
+ StrippedTextLine, is_public_person)
from canonical.launchpad.interfaces.account import AccountStatus, IAccount
from canonical.launchpad.interfaces.emailaddress import IEmailAddress
from canonical.launchpad.interfaces.launchpad import (
@@ -110,7 +110,7 @@
@block_implicit_flushes
-def validate_person(obj, attr, value, validate_func):
+def validate_person_common(obj, attr, value, validate_func):
"""Validate the person using the supplied function."""
if value is None:
return None
@@ -121,7 +121,7 @@
# DB. This needs cleaning up.
from lp.registry.model.person import Person
person = Person.get(value)
- if validate_func(person):
+ if not validate_func(person):
raise PrivatePersonLinkageError(
"Cannot link person (name=%s, visibility=%s) to %s (name=%s)"
% (person.name, person.visibility.name,
@@ -129,18 +129,20 @@
return value
+def validate_person(obj, attr, value):
+ """Validate the person is a real person with no other restrictions."""
+ def validate(person):
+ return IPerson.providedBy(person)
+ return validate_person_common(obj, attr, value, validate)
+
+
def validate_public_person(obj, attr, value):
"""Validate that the person identified by value is public."""
def validate(person):
- return not is_public_person(person)
-
- return validate_person(obj, attr, value, validate)
-
-
-def validate_person_not_private_membership(obj, attr, value):
- """Validate that the person (value) is not a private membership team."""
- return validate_person(obj, attr, value, is_private_membership_person)
+ return is_public_person(person)
+
+ return validate_person_common(obj, attr, value, validate)
class PersonalStanding(DBEnumeratedType):
@@ -378,14 +380,6 @@
Everyone can view all the attributes of this person.
""")
- PRIVATE_MEMBERSHIP = DBItem(20, """
- Private Membership
-
- Only Launchpad admins and team members can view the
- membership list for this team. The team is severely restricted in the
- roles it can assume.
- """)
-
PRIVATE = DBItem(30, """
Private
=== modified file 'lib/lp/registry/interfaces/product.py'
--- lib/lp/registry/interfaces/product.py 2010-07-09 10:22:32 +0000
+++ lib/lp/registry/interfaces/product.py 2010-07-28 15:06:10 +0000
@@ -36,7 +36,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
Description, IconImageUpload, LogoImageUpload, MugshotImageUpload,
- ParticipatingPersonChoice, ProductBugTracker, ProductNameField,
+ PersonChoice, ProductBugTracker, ProductNameField,
PublicPersonChoice, Summary, Title, URIField)
from lp.bugs.interfaces.bugsupervisor import IHasBugSupervisor
from lp.bugs.interfaces.securitycontact import IHasSecurityContact
@@ -373,7 +373,7 @@
exported_as='project_group')
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Maintainer'),
required=True,
vocabulary='ValidOwner',
@@ -390,7 +390,7 @@
"Launchpad.")))
driver = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_("Driver"),
description=_(
"This person or team will be able to set feature goals for "
=== modified file 'lib/lp/registry/interfaces/productrelease.py'
--- lib/lp/registry/interfaces/productrelease.py 2009-10-26 18:40:04 +0000
+++ lib/lp/registry/interfaces/productrelease.py 2010-07-28 15:06:10 +0000
@@ -28,7 +28,7 @@
from canonical.launchpad import _
from canonical.launchpad.validators.version import sane_version
from canonical.launchpad.fields import (
- ContentNameField, ParticipatingPersonChoice)
+ ContentNameField, PersonChoice)
from canonical.launchpad.validators import LaunchpadValidationError
from lazr.restful.fields import CollectionField, Reference, ReferenceChoice
@@ -270,7 +270,7 @@
)
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=u"The owner of this release.",
required=True,
vocabulary='ValidOwner',
=== modified file 'lib/lp/registry/interfaces/productseries.py'
--- lib/lp/registry/interfaces/productseries.py 2010-06-11 18:05:59 +0000
+++ lib/lp/registry/interfaces/productseries.py 2010-07-28 15:06:10 +0000
@@ -19,7 +19,7 @@
from zope.interface import Interface, Attribute
from canonical.launchpad.fields import (
- ContentNameField, ParticipatingPersonChoice, Title)
+ ContentNameField, PersonChoice, Title)
from lp.registry.interfaces.structuralsubscription import (
IStructuralSubscriptionTarget)
from lp.code.interfaces.branch import IBranch
@@ -129,12 +129,12 @@
exported_as='date_created')
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Owner'), required=True, vocabulary='ValidOwner',
description=_('Project owner, either a valid Person or Team')))
driver = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_("Release manager"),
description=_(
"The person or team responsible for decisions about features "
=== modified file 'lib/lp/registry/interfaces/structuralsubscription.py'
--- lib/lp/registry/interfaces/structuralsubscription.py 2010-04-19 08:11:52 +0000
+++ lib/lp/registry/interfaces/structuralsubscription.py 2010-07-28 15:06:10 +0000
@@ -23,7 +23,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
- ParticipatingPersonChoice, PublicPersonChoice)
+ PersonChoice, PublicPersonChoice)
from lp.registry.interfaces.person import IPerson
from lazr.restful.declarations import (
@@ -105,7 +105,7 @@
title=_('Distribution series'), required=False, readonly=True)
sourcepackagename = Int(
title=_('Source package name'), required=False, readonly=True)
- subscriber = exported(ParticipatingPersonChoice(
+ subscriber = exported(PersonChoice(
title=_('Subscriber'), required=True, vocabulary='ValidPersonOrTeam',
readonly=True, description=_("The person subscribed.")))
subscribed_by = exported(PublicPersonChoice(
=== modified file 'lib/lp/registry/model/distribution.py'
--- lib/lp/registry/model/distribution.py 2010-06-29 10:17:06 +0000
+++ lib/lp/registry/model/distribution.py 2010-07-28 15:06:10 +0000
@@ -108,7 +108,7 @@
from canonical.launchpad.validators.name import sanitize_name, valid_name
from canonical.launchpad.webapp.interfaces import NotFoundError
from lp.registry.interfaces.person import (
- validate_person_not_private_membership, validate_public_person)
+ validate_person, validate_public_person)
from canonical.launchpad.webapp.url import urlparse
from lp.answers.model.question import (
@@ -152,7 +152,7 @@
storm_validator=validate_public_person, notNull=True)
bug_supervisor = ForeignKey(
dbName='bug_supervisor', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=False,
default=None)
bug_reporting_guidelines = StringCol(default=None)
@@ -774,7 +774,7 @@
def getSeriesByStatus(self, status):
"""See `IDistribution`."""
- return Store.of(self).find(DistroSeries,
+ return Store.of(self).find(DistroSeries,
DistroSeries.distribution == self,
DistroSeries.status == status)
=== modified file 'lib/lp/registry/model/person.py'
--- lib/lp/registry/model/person.py 2010-07-24 00:39:29 +0000
+++ lib/lp/registry/model/person.py 2010-07-28 15:06:10 +0000
@@ -191,17 +191,10 @@
def validate_person_visibility(person, attr, value):
"""Validate changes in visibility.
- * Prevent teams with inconsistent connections from being made private
- * Prevent private membership teams with mailing lists from going public.
+ * Prevent teams with inconsistent connections from being made private.
* Prevent private teams from any transition.
"""
- # XXX: BradCrittenden 2010-07-12 bug=602773: Private membership teams are
- # deprecated and new ones may not be created.
- if value == PersonVisibility.PRIVATE_MEMBERSHIP:
- raise AssertionError(
- "Private membership teams are deprecated.")
-
# Prohibit any visibility changes for private teams. This rule is
# recognized to be Draconian and may be relaxed in the future.
if person.visibility == PersonVisibility.PRIVATE:
=== modified file 'lib/lp/registry/model/product.py'
--- lib/lp/registry/model/product.py 2010-07-09 10:22:32 +0000
+++ lib/lp/registry/model/product.py 2010-07-28 15:06:10 +0000
@@ -58,7 +58,7 @@
from lp.registry.model.milestone import (
HasMilestonesMixin, Milestone)
from lp.registry.interfaces.person import (
- validate_person_not_private_membership, validate_public_person)
+ validate_person, validate_public_person)
from lp.registry.model.announcement import MakesAnnouncements
from lp.registry.model.packaging import Packaging
from lp.registry.model.pillar import HasAliasMixin
@@ -189,7 +189,7 @@
default=None)
_owner = ForeignKey(
dbName="owner", foreignKey="Person",
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True)
registrant = ForeignKey(
dbName="registrant", foreignKey="Person",
@@ -197,7 +197,7 @@
notNull=True)
bug_supervisor = ForeignKey(
dbName='bug_supervisor', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=False,
default=None)
security_contact = ForeignKey(
@@ -206,7 +206,7 @@
default=None)
driver = ForeignKey(
dbName="driver", foreignKey="Person",
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=False, default=None)
name = StringCol(
dbName='name', notNull=True, alternateID=True, unique=True)
=== modified file 'lib/lp/registry/model/productrelease.py'
--- lib/lp/registry/model/productrelease.py 2009-11-24 21:27:17 +0000
+++ lib/lp/registry/model/productrelease.py 2010-07-28 15:06:10 +0000
@@ -31,7 +31,7 @@
UpstreamFileType)
from canonical.launchpad.interfaces.librarian import ILibraryFileAliasSet
from lp.registry.interfaces.person import (
- validate_person_not_private_membership, validate_public_person)
+ validate_person, validate_public_person)
from canonical.launchpad.webapp.interfaces import (
DEFAULT_FLAVOR, IStoreSelector, MAIN_STORE)
@@ -52,7 +52,7 @@
dbName='datecreated', notNull=True, default=UTC_NOW)
owner = ForeignKey(
dbName="owner", foreignKey="Person",
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True)
milestone = ForeignKey(dbName='milestone', foreignKey='Milestone')
=== modified file 'lib/lp/registry/model/productseries.py'
--- lib/lp/registry/model/productseries.py 2010-07-15 15:01:18 +0000
+++ lib/lp/registry/model/productseries.py 2010-07-28 15:06:10 +0000
@@ -35,8 +35,7 @@
from lp.registry.model.milestone import (
HasMilestonesMixin, Milestone)
from lp.registry.model.packaging import Packaging
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
from lp.translations.model.pofile import POFile
from lp.translations.model.potemplate import (
HasTranslationTemplatesMixin,
@@ -95,12 +94,12 @@
datecreated = UtcDateTimeCol(notNull=True, default=UTC_NOW)
owner = ForeignKey(
dbName="owner", foreignKey="Person",
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True)
driver = ForeignKey(
dbName="driver", foreignKey="Person",
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=False, default=None)
branch = ForeignKey(foreignKey='Branch', dbName='branch',
default=None)
=== modified file 'lib/lp/registry/model/structuralsubscription.py'
--- lib/lp/registry/model/structuralsubscription.py 2010-04-19 09:39:29 +0000
+++ lib/lp/registry/model/structuralsubscription.py 2010-07-28 15:06:10 +0000
@@ -29,7 +29,7 @@
IStructuralSubscription, IStructuralSubscriptionTarget,
UserCannotSubscribePerson)
from lp.registry.interfaces.person import (
- validate_public_person, validate_person_not_private_membership)
+ validate_person, validate_public_person)
class StructuralSubscription(SQLBase):
@@ -61,7 +61,7 @@
notNull=False, default=None)
subscriber = ForeignKey(
dbName='subscriber', foreignKey='Person',
- storm_validator=validate_person_not_private_membership, notNull=True)
+ storm_validator=validate_person, notNull=True)
subscribed_by = ForeignKey(
dbName='subscribed_by', foreignKey='Person',
storm_validator=validate_public_person, notNull=True)
=== modified file 'lib/lp/registry/tests/mailinglists_helper.py'
--- lib/lp/registry/tests/mailinglists_helper.py 2009-12-04 17:16:39 +0000
+++ lib/lp/registry/tests/mailinglists_helper.py 2010-07-28 15:06:10 +0000
@@ -194,7 +194,7 @@
browser.getControl(name='field.name').value = team_name
browser.getControl('Display Name').value = displayname
if private:
- browser.getControl('Visibility').value = ['PRIVATE_MEMBERSHIP']
+ browser.getControl('Visibility').value = ['PRIVATE']
browser.getControl(name='field.subscriptionpolicy').value = [
'RESTRICTED']
else:
=== modified file 'lib/lp/registry/tests/test_person.py'
--- lib/lp/registry/tests/test_person.py 2010-07-14 16:08:24 +0000
+++ lib/lp/registry/tests/test_person.py 2010-07-28 15:06:10 +0000
@@ -115,19 +115,6 @@
PrivatePersonLinkageError,
setattr, bug, attr_name, self.myteam)
- def test_BugTask_person_validator(self):
- bug_task = BugTask.select(limit=1)[0]
- for attr_name in ['assignee', 'owner']:
- self.assertRaises(
- PrivatePersonLinkageError,
- setattr, bug_task, attr_name, self.myteam)
-
- def test_BugSubscription_person_validator(self):
- bug_subscription = BugSubscription.select(limit=1)[0]
- self.assertRaises(
- PrivatePersonLinkageError,
- setattr, bug_subscription, 'person', self.myteam)
-
def test_Specification_person_validator(self):
specification = Specification.select(limit=1)[0]
for attr_name in ['assignee', 'drafter', 'approver', 'owner',
=== modified file 'lib/lp/registry/tests/test_user_vocabularies.py'
--- lib/lp/registry/tests/test_user_vocabularies.py 2010-07-14 14:35:59 +0000
+++ lib/lp/registry/tests/test_user_vocabularies.py 2010-07-28 15:06:10 +0000
@@ -127,7 +127,7 @@
login_person(team_owner)
team = self.factory.makeTeam(owner=team_owner)
team.addMember(person=user, reviewer=team_owner)
- # Launchpad admin rights are needed to set private membership.
+ # Launchpad admin rights are needed to create private teams.
login('foo.bar@xxxxxxxxxxxxx')
team.visibility = PersonVisibility.PRIVATE
login_person(user)
=== modified file 'lib/lp/registry/vocabularies.py'
--- lib/lp/registry/vocabularies.py 2010-06-04 09:31:21 +0000
+++ lib/lp/registry/vocabularies.py 2010-07-28 15:06:10 +0000
@@ -442,8 +442,7 @@
private_query = AND(
Not(Person.teamowner == None),
OR(
- Person.visibility == PersonVisibility.PRIVATE,
- Person.visibility == PersonVisibility.PRIVATE_MEMBERSHIP))
+ Person.visibility == PersonVisibility.PRIVATE))
else:
private_query = AND(
TeamParticipation.person == logged_in_user.id,
=== modified file 'lib/lp/soyuz/browser/archive.py'
--- lib/lp/soyuz/browser/archive.py 2010-07-20 10:25:51 +0000
+++ lib/lp/soyuz/browser/archive.py 2010-07-28 15:06:10 +0000
@@ -1809,8 +1809,7 @@
def is_private_team(self):
"""Is the person a private team?
- :return: True only if visibility is PRIVATE. False is returned when
- the visibility is PUBLIC and PRIVATE_MEMBERSHIP.
+ :return: True only if visibility is PRIVATE.
:rtype: bool
"""
return self.context.visibility == PersonVisibility.PRIVATE
@@ -1881,7 +1880,7 @@
def updateContextFromData(self, data):
"""Update context from form data.
- If the user did not specify a buildd secret but marked the
+ If the user did not specify a buildd secret but marked the
archive as private, generate a secret for them.
"""
if data['private'] and data['buildd_secret'] is None:
@@ -1958,8 +1957,7 @@
def owner_is_private_team(self):
"""Is the owner a private team?
- :return: True only if visibility is PRIVATE. False is returned when
- the visibility is PUBLIC and PRIVATE_MEMBERSHIP.
+ :return: True only if visibility is PRIVATE.
:rtype: bool
"""
return self.context.owner.visibility == PersonVisibility.PRIVATE
@@ -2028,4 +2026,3 @@
self.request.response.addInfoNotification(
"Deletion of '%s' has been requested and the repository will be "
"removed shortly." % self.context.title)
-
=== modified file 'lib/lp/soyuz/browser/archivesubscription.py'
--- lib/lp/soyuz/browser/archivesubscription.py 2010-03-08 18:01:33 +0000
+++ lib/lp/soyuz/browser/archivesubscription.py 2010-07-28 15:06:10 +0000
@@ -11,7 +11,7 @@
'ArchiveSubscribersView',
'PersonArchiveSubscriptionView',
'PersonArchiveSubscriptionsView',
- 'traverse_archive_subscription_for_subscriber'
+ 'traverse_archive_subscription_for_subscriber',
]
import datetime
@@ -27,7 +27,7 @@
from canonical.cachedproperty import cachedproperty
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lp.soyuz.browser.sourceslist import (
SourcesListEntries, SourcesListEntriesView)
from lp.soyuz.interfaces.archive import IArchiveSet
@@ -93,7 +93,7 @@
we simply want to use a date field when users create or edit new
subscriptions.
"""
- subscriber = ParticipatingPersonChoice(
+ subscriber = PersonChoice(
title=_("Subscriber"), required=True, vocabulary='ValidPersonOrTeam',
description=_("The person or team to grant access."))
@@ -383,6 +383,3 @@
token_set = getUtility(IArchiveAuthTokenSet)
return token_set.getActiveTokenForArchiveAndPerson(
self.context.archive, self.context.subscriber)
-
-
-
=== modified file 'lib/lp/soyuz/interfaces/archive.py'
--- lib/lp/soyuz/interfaces/archive.py 2010-07-27 12:28:46 +0000
+++ lib/lp/soyuz/interfaces/archive.py 2010-07-28 15:06:10 +0000
@@ -53,7 +53,7 @@
from canonical.launchpad import _
from canonical.launchpad.fields import (
- ParticipatingPersonChoice, PublicPersonChoice, StrippedTextLine)
+ PersonChoice, PublicPersonChoice, StrippedTextLine)
from canonical.launchpad.interfaces.launchpad import IPrivacy
from lp.registry.interfaces.role import IHasOwner
from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
@@ -227,7 +227,7 @@
id = Attribute("The archive ID.")
owner = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_('Owner'), required=True, vocabulary='ValidOwner',
description=_("""The archive owner.""")))
=== modified file 'lib/lp/soyuz/interfaces/archivesubscriber.py'
--- lib/lp/soyuz/interfaces/archivesubscriber.py 2009-09-11 10:52:54 +0000
+++ lib/lp/soyuz/interfaces/archivesubscriber.py 2010-07-28 15:06:10 +0000
@@ -20,7 +20,7 @@
from lazr.enum import DBEnumeratedType, DBItem
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lp.soyuz.interfaces.archive import IArchive
from lp.registry.interfaces.person import IPerson
from lazr.restful.declarations import export_as_webservice_entry, exported
@@ -71,7 +71,7 @@
title=_("Date Created"), required=True, readonly=True,
description=_("The timestamp when the subscription was created.")))
- subscriber = exported(ParticipatingPersonChoice(
+ subscriber = exported(PersonChoice(
title=_("Subscriber"), required=True, readonly=True,
vocabulary='ValidPersonOrTeam',
description=_("The person who is subscribed.")))
=== modified file 'lib/lp/soyuz/model/archive.py'
--- lib/lp/soyuz/model/archive.py 2010-07-27 12:53:24 +0000
+++ lib/lp/soyuz/model/archive.py 2010-07-28 15:06:10 +0000
@@ -102,8 +102,7 @@
IStoreSelector, MAIN_STORE, DEFAULT_FLAVOR)
from canonical.launchpad.webapp.url import urlappend
from canonical.launchpad.validators.name import valid_name
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
class Archive(SQLBase):
@@ -113,7 +112,7 @@
owner = ForeignKey(
dbName='owner', foreignKey='Person',
- storm_validator=validate_person_not_private_membership, notNull=True)
+ storm_validator=validate_person, notNull=True)
def _validate_archive_name(self, attr, value):
"""Only allow renaming of COPY archives.
=== modified file 'lib/lp/soyuz/model/archivesubscriber.py'
--- lib/lp/soyuz/model/archivesubscriber.py 2009-12-24 06:44:57 +0000
+++ lib/lp/soyuz/model/archivesubscriber.py 2010-07-28 15:06:10 +0000
@@ -22,8 +22,7 @@
from canonical.database.enumcol import DBEnum
from lp.soyuz.interfaces.archiveauthtoken import IArchiveAuthTokenSet
from lp.soyuz.model.archiveauthtoken import ArchiveAuthToken
-from lp.registry.interfaces.person import (
- validate_person_not_private_membership)
+from lp.registry.interfaces.person import validate_person
from lp.registry.model.teammembership import TeamParticipation
from lp.soyuz.interfaces.archivesubscriber import (
ArchiveSubscriberStatus, IArchiveSubscriber)
@@ -47,7 +46,7 @@
subscriber_id = Int(
name='subscriber', allow_none=False,
- validator=validate_person_not_private_membership)
+ validator=validate_person)
subscriber = Reference(subscriber_id, 'Person.id')
date_expires = DateTime(
=== modified file 'lib/lp/translations/interfaces/potemplate.py'
--- lib/lp/translations/interfaces/potemplate.py 2010-07-22 14:59:48 +0000
+++ lib/lp/translations/interfaces/potemplate.py 2010-07-28 15:06:10 +0000
@@ -12,7 +12,7 @@
exported, export_as_webservice_entry, export_read_operation,
operation_returns_collection_of)
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from canonical.launchpad.interfaces.launchpad import NotFoundError
from canonical.launchpad.interfaces.librarian import ILibraryFileAlias
from lp.registry.interfaces.distribution import IDistribution
@@ -124,7 +124,7 @@
required=True,
default=True), exported_as='active')
- owner = exported(ParticipatingPersonChoice(
+ owner = exported(PersonChoice(
title=_("Owner"),
required=True,
description=_(
=== modified file 'lib/lp/translations/interfaces/translationimportqueue.py'
--- lib/lp/translations/interfaces/translationimportqueue.py 2010-06-04 07:29:20 +0000
+++ lib/lp/translations/interfaces/translationimportqueue.py 2010-07-28 15:06:10 +0000
@@ -12,7 +12,7 @@
from lazr.enum import DBEnumeratedType, DBItem, EnumeratedType, Item
from canonical.launchpad import _
-from canonical.launchpad.fields import ParticipatingPersonChoice
+from canonical.launchpad.fields import PersonChoice
from lp.registry.interfaces.sourcepackage import ISourcePackage
from lp.translations.interfaces.translationfileformat import (
TranslationFileFormat)
@@ -189,7 +189,7 @@
required=True))
importer = exported(
- ParticipatingPersonChoice(
+ PersonChoice(
title=_("Uploader"),
required=True,
readonly=True,
=== modified file 'lib/lp/translations/model/translationimportqueue.py'
--- lib/lp/translations/model/translationimportqueue.py 2010-07-23 14:50:50 +0000
+++ lib/lp/translations/model/translationimportqueue.py 2010-07-28 15:06:10 +0000
@@ -40,7 +40,7 @@
from lp.registry.interfaces.series import SeriesStatus
from lp.registry.interfaces.distroseries import IDistroSeries
from lp.registry.interfaces.person import (
- IPerson, validate_person_not_private_membership)
+ IPerson, validate_person)
from lp.registry.interfaces.product import IProduct
from lp.registry.interfaces.productseries import IProductSeries
from lp.registry.interfaces.sourcepackage import ISourcePackage
@@ -115,7 +115,7 @@
notNull=False)
importer = ForeignKey(
dbName='importer', foreignKey='Person',
- storm_validator=validate_person_not_private_membership,
+ storm_validator=validate_person,
notNull=True)
dateimported = UtcDateTimeCol(dbName='dateimported', notNull=True,
default=DEFAULT)