• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

allura


Commit MetaInfo

Revisión0e4aae15442f9e2672f6627fe446491cb6071869 (tree)
Tiempo2011-12-30 04:22:53
AutorTim Van Steenburgh <tvansteenburgh@geek...>
CommiterTim Van Steenburgh

Log Message

[#3485] Updated publicize-neighborhood script to remove sfx dependency.

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@geek.net>

Cambiar Resumen

Diferencia incremental

--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -578,5 +578,8 @@ class ProjectRole(MappedClass):
578578 def parent_roles(self):
579579 return self.query.find({'roles': self._id}).all()
580580
581- def users_with_role(self):
582- return self.query.find(dict(project_id=c.project._id,user_id={'$ne':None},roles=self._id)).all()
581+ def users_with_role(self, project=None):
582+ if not project:
583+ project = c.project
584+ return self.query.find(dict(project_id=project._id,
585+ user_id={'$ne': None}, roles=self._id)).all()
--- a/scripts/publicize-neighborhood.py
+++ b/scripts/publicize-neighborhood.py
@@ -2,27 +2,24 @@ import logging
22 import sys
33
44 from ming.orm import ThreadLocalORMSession
5-from pylons import g
5+from pylons import c, g
66
77 from allura import model as M
88 from allura.lib import helpers as h
99 from allura.lib import utils
1010
11-from sfx.lib.sfx_api import SFXProjectApi
12-
1311 log = logging.getLogger(__name__)
1412
1513 def main(options):
1614 log.addHandler(logging.StreamHandler(sys.stdout))
1715 log.setLevel(getattr(logging, options.log_level.upper()))
1816
19- api = SFXProjectApi()
2017 nbhd = M.Neighborhood.query.get(name=options.neighborhood)
2118 if not nbhd:
2219 return 'Invalid neighborhood "%s".' % options.neighborhood
23- sfx_siteadmin = M.User.query.get(username=api.sfx_siteadmin)
24- if not sfx_siteadmin:
25- return "Couldn't find sfx_siteadmin with username '%s'" % api.sfx_siteadmin
20+ admin_role = M.ProjectRole.by_name('Admin', project=nbhd.neighborhood_project)
21+ nbhd_admin = admin_role.users_with_role(project=nbhd.neighborhood_project)[0].user
22+ log.info('Making updates as neighborhood admin "%s"' % nbhd_admin.username)
2623
2724 q = {'neighborhood_id': nbhd._id,
2825 'shortname': {'$ne':'--init--'}, 'deleted':False}
@@ -37,12 +34,9 @@ def main(options):
3734 else:
3835 log.info('Making public: "%s"' % p.shortname)
3936 p.acl.append(M.ACE.allow(role_anon._id, 'read'))
40- ThreadLocalORMSession.flush_all()
41- try:
42- api.update(sfx_siteadmin, p)
43- except Exception, e:
44- log.warning('SFX API update failed for project "%s": '
45- '%s' % (p.shortname, e))
37+ with h.push_config(c, project=p, user=nbhd_admin):
38+ ThreadLocalORMSession.flush_all()
39+ g.post_event('project_updated')
4640 private_count += 1
4741 else:
4842 log.info('Already public: "%s"' % p.shortname)