|
a/Allura/allura/controllers/project.py |
|
b/Allura/allura/controllers/project.py |
|
... |
|
... |
410 |
grants=grants,
|
410 |
grants=grants,
|
411 |
grants_count=grants_count,
|
411 |
grants_count=grants_count,
|
412 |
neighborhood=self.neighborhood)
|
412 |
neighborhood=self.neighborhood)
|
413 |
|
413 |
|
414 |
@expose()
|
414 |
@expose()
|
|
|
415 |
@require_post()
|
415 |
def update(self, name=None, css=None, homepage=None, icon=None, **kw):
|
416 |
def update(self, name=None, css=None, homepage=None, icon=None, **kw):
|
416 |
self.neighborhood.name = name
|
417 |
self.neighborhood.name = name
|
417 |
self.neighborhood.redirect = kw.pop('redirect', '')
|
418 |
self.neighborhood.redirect = kw.pop('redirect', '')
|
418 |
self.neighborhood.homepage = homepage
|
419 |
self.neighborhood.homepage = homepage
|
419 |
self.neighborhood.css = css
|
420 |
self.neighborhood.css = css
|
|
... |
|
... |
427 |
thumbnail_meta=dict(neighborhood_id=self.neighborhood._id))
|
428 |
thumbnail_meta=dict(neighborhood_id=self.neighborhood._id))
|
428 |
redirect('overview')
|
429 |
redirect('overview')
|
429 |
|
430 |
|
430 |
@h.vardec
|
431 |
@h.vardec
|
431 |
@expose()
|
432 |
@expose()
|
|
|
433 |
@require_post()
|
432 |
def update_acl(self, permission=None, user=None, new=None, **kw):
|
434 |
def update_acl(self, permission=None, user=None, new=None, **kw):
|
433 |
if user is None: user = []
|
435 |
if user is None: user = []
|
434 |
for u in user:
|
436 |
for u in user:
|
435 |
if u.get('delete'):
|
437 |
if u.get('delete'):
|
436 |
if u['id']:
|
438 |
if u['id']:
|
|
... |
|
... |
463 |
@expose('jinja:neighborhood_moderate.html')
|
465 |
@expose('jinja:neighborhood_moderate.html')
|
464 |
def index(self, **kw):
|
466 |
def index(self, **kw):
|
465 |
return dict(neighborhood=self.neighborhood)
|
467 |
return dict(neighborhood=self.neighborhood)
|
466 |
|
468 |
|
467 |
@expose()
|
469 |
@expose()
|
|
|
470 |
@require_post()
|
468 |
def invite(self, pid, invite=None, uninvite=None):
|
471 |
def invite(self, pid, invite=None, uninvite=None):
|
469 |
p = M.Project.query.get(shortname=pid, deleted=False)
|
472 |
p = M.Project.query.get(shortname=pid, deleted=False)
|
470 |
if p is None:
|
473 |
if p is None:
|
471 |
flash("Can't find %s" % pid, 'error')
|
474 |
flash("Can't find %s" % pid, 'error')
|
472 |
redirect('.')
|
475 |
redirect('.')
|
|
... |
|
... |
486 |
p.neighborhood_invitations.remove(self.neighborhood._id)
|
489 |
p.neighborhood_invitations.remove(self.neighborhood._id)
|
487 |
flash('%s uninvited' % pid)
|
490 |
flash('%s uninvited' % pid)
|
488 |
redirect('.')
|
491 |
redirect('.')
|
489 |
|
492 |
|
490 |
@expose()
|
493 |
@expose()
|
|
|
494 |
@require_post()
|
491 |
def evict(self, pid):
|
495 |
def evict(self, pid):
|
492 |
p = M.Project.query.get(shortname=pid, neighborhood_id=self.neighborhood._id, deleted=False)
|
496 |
p = M.Project.query.get(shortname=pid, neighborhood_id=self.neighborhood._id, deleted=False)
|
493 |
if p is None:
|
497 |
if p is None:
|
494 |
flash("Cannot evict %s; it's not in the neighborhood"
|
498 |
flash("Cannot evict %s; it's not in the neighborhood"
|
495 |
% pid, 'error')
|
499 |
% pid, 'error')
|
|
... |
|
... |
603 |
grant.granted_to_project_id = recipient_q._id
|
607 |
grant.granted_to_project_id = recipient_q._id
|
604 |
grant.granted_by_neighborhood_id = self.neighborhood._id
|
608 |
grant.granted_by_neighborhood_id = self.neighborhood._id
|
605 |
redirect(request.referer)
|
609 |
redirect(request.referer)
|
606 |
|
610 |
|
607 |
@expose()
|
611 |
@expose()
|
|
|
612 |
@require_post()
|
608 |
def delete(self):
|
613 |
def delete(self):
|
609 |
if self.award:
|
614 |
if self.award:
|
610 |
grants = M.AwardGrant.query.find(dict(award_id=self.award._id))
|
615 |
grants = M.AwardGrant.query.find(dict(award_id=self.award._id))
|
611 |
for grant in grants:
|
616 |
for grant in grants:
|
612 |
grant.delete()
|
617 |
grant.delete()
|
|
... |
|
... |
642 |
if not icon:
|
647 |
if not icon:
|
643 |
raise exc.HTTPNotFound
|
648 |
raise exc.HTTPNotFound
|
644 |
return icon.serve()
|
649 |
return icon.serve()
|
645 |
|
650 |
|
646 |
@expose()
|
651 |
@expose()
|
|
|
652 |
@require_post()
|
647 |
def revoke(self):
|
653 |
def revoke(self):
|
648 |
self.grant.delete()
|
654 |
self.grant.delete()
|
649 |
redirect(request.referer)
|
655 |
redirect(request.referer)
|
650 |
|
656 |
|