예제 #1
0
	def post(self, *args):
		urlcfg = urldict['ActivityParticipate']
		id, oper = urlcfg.analyze(self.request.path)
		id = int(id)
		actobj = self.getActModel(id)
		if (not actobj):
			return errorPage (self.response,  urldict['ClubList'].path(),  "No such activity",  404 )
		user = get_current_user();
		if (not user):
			return errorPage ( self.response,  "Not login",   create_login_url(self.request.url),   403)
		target = self.request.get ('target')
		cluburl = urldict['ClubView'].path(actobj.club.slug)
		if (not hasActPrivilige(user, actobj, oper,target) ):
			return errorPage ( self.response,  "Can not access",   cluburl,   403)
		if (target):
			targetUser = User(target)
			if(not targetUser):
				return errorPage ( self.response,  "Illegal access",   cluburl,   403)
		else: #if target omitted, use current user as target
			targetUser = user
			
		mem = Membership.between (targetUser, actobj.club)
		if (not mem):
			return errorPage ( self.response,  "Not a member",   cluburl,   403)
		
		acturl = urldict['ActivityView'].path(id)
		if (oper == 'join'):
			actp = ActivityParticipator.between (mem, actobj)
			if (not actp):
				actp = ActivityParticipator(member = mem, activity = actobj)
				actp.put()
			return infoPage (self.response, "Successfully Joined", "%s has join activity %s" % (mem.name, actobj.name), acturl)
		elif (oper == 'quit'):
			actp = ActivityParticipator.between(mem, actobj)
			if (actp):
				if (actp.confirmed):
					return errorPage ( self.response,  "Cannot delete confirmed participator",   acturl,   403)
				else:
					actp.delete()
			return infoPage (self.response, "Successfully Quited", "%s success quit activity %s" % (mem.name, actobj.name), acturl)
		elif (oper == 'confirm'):
			actp = ActivityParticipator.between(mem, actobj)
			if (actp):
				actp.confirmed = not actp.confirmed 
				actp.put()
				return infoPage (self.response, "Successfully Confirmed", "success confirmed %s join activity %s" % (mem.name, actobj.name), acturl)
			else:
				return errorPage ( self.response,  "No Such a Member",   acturl,   404)
		elif (oper == 'bill' or oper == "rebill"):
			billobj = ActivityBill.generateBill(actobj, oper == "rebill")#If in rebill operation, we could enable rebill
			if (billobj):
				billobj.put()
				billDict = dict(billobj = billobj)
				return infoPage (self.response, "Successfully Billded", str(billobj.memberBill), acturl)
			else:
				return errorPage (self.response, "Error Will Generate Bill", acturl, 501)
예제 #2
0
	def post(self, *args):
		if (self.initRequest()):
			getval = self.request.get
			getlist = self.request.get_all
			privs = getlist('priv')
			member = self.target
			member.privilige = privs
			member.put()
			infoPage(self.response, "Success", "Success fully enable grant user %s in club %s those privilige: \n (%s)"
					% (self.target.name, self.target.club.name, ', '.join(privs)), self.request.path )
예제 #3
0
 def post(self, *args):
     if self.visit():
         # If find 'delete' in the request data, we'll delete the member specify by the path
         if self.judgeDelete():
             self.doDelete()
             infoPage(self.response, "Delete Succeed", "Deleted", urldict["ClubView"].path(self.club.slug))
             return True
             # Esle we'll construct membership object via postdata
         member = self.getPostData()
         if member.put():
             self.postStatus = "Succeed"
         self.member = member
         self.get(*args)
예제 #4
0
 def post(self, *args):
     if (self.initRequest()):
         getval = self.request.get
         getlist = self.request.get_all
         privs = getlist('priv')
         member = self.target
         member.privilige = privs
         member.put()
         infoPage(
             self.response, "Success",
             "Success fully enable grant user %s in club %s those privilige: \n (%s)"
             % (self.target.name, self.target.club.name, ', '.join(privs)),
             self.request.path)
예제 #5
0
 def post(self, *args):
     if (self.visit()):
         #If find 'delete' in the request data, we'll delete the member specify by the path
         if (self.judgeDelete()):
             self.doDelete()
             infoPage(self.response, "Delete Succeed", "Deleted",
                      urldict['ClubView'].path(self.club.slug))
             return True
         #Esle we'll construct membership object via postdata
         member = self.getPostData()
         if (member.put()):
             self.postStatus = "Succeed"
         self.member = member
         self.get(*args)
예제 #6
0
	def post(self, *args): 
		stat, user = self.accessControl()
		pathslug=self.analyzePath()
		clubmd = self.parsePostdata (self.request, pathslug)
		if (clubmd): #Put valid, then redirect
			if ( self.editOrCreateRight(user, clubmd) ):
				self.clubmodel = clubmd
				isNewClub = not clubmd.is_saved()
				clubmd.put()
				if (isNewClub): #Create New Membership For Owner when create the club
					mem = Membership(user=user, club = clubmd)
					mem.put()
				infoPage (self.response, "Successfullyt Saved Club", "Club Saved", urldict['ClubView'].path(clubmd.slug))
			else:
				return
		else:
			self.get()
예제 #7
0
	def post(self, *args):
		actobj = self.getActModel()
		if (actobj):
			self.actobj = actobj
			if (self.checkPrivilige()):
				if (self.request.get ('delete', False)):
					actobj.delete()
					return infoPage (self.response, "Successful deleted", "Deleted Activity %s" % actobj.name, "/")
				self.updateObject(actobj)
				key = actobj.put()
				if (key):
					return errorPage( self.response,  "Successfully storing this Activity",   									urldict['ActivityView'].path(key.id()),   200)
				else:
					return errorPage( self.response,  "Error while storing this Activity",   									urldict['ActivityEdit'].path(actobj.key().id()),   501)
		else:
			return errorPage( self.response,  "No such Activity",   urldict['ClubList'].path(),   404)
예제 #8
0
 def post(self, *args):
     actobj = self.getActModel()
     if (actobj):
         self.actobj = actobj
         if (self.checkPrivilige()):
             if (self.request.get('delete', False)):
                 actobj.delete()
                 return infoPage(self.response, "Successful deleted",
                                 "Deleted Activity %s" % actobj.name, "/")
             self.updateObject(actobj)
             key = actobj.put()
             if (key):
                 return errorPage(self.response,
                                  "Successfully storing this Activity",
                                  urldict['ActivityView'].path(key.id()),
                                  200)
             else:
                 return errorPage(
                     self.response, "Error while storing this Activity",
                     urldict['ActivityEdit'].path(actobj.key().id()), 501)
     else:
         return errorPage(self.response, "No such Activity",
                          urldict['ClubList'].path(), 404)
예제 #9
0
    def post(self, *args):
        urlcfg = urldict['ActivityParticipate']
        id, oper = urlcfg.analyze(self.request.path)
        id = int(id)
        actobj = self.getActModel(id)
        if (not actobj):
            return errorPage(self.response, urldict['ClubList'].path(),
                             "No such activity", 404)
        user = get_current_user()
        if (not user):
            return errorPage(self.response, "Not login",
                             create_login_url(self.request.url), 403)
        target = self.request.get('target')
        cluburl = urldict['ClubView'].path(actobj.club.slug)
        if (not hasActPrivilige(user, actobj, oper, target)):
            return errorPage(self.response, "Can not access", cluburl, 403)
        if (target):
            targetUser = User(target)
            if (not targetUser):
                return errorPage(self.response, "Illegal access", cluburl, 403)
        else:  #if target omitted, use current user as target
            targetUser = user

        mem = Membership.between(targetUser, actobj.club)
        if (not mem):
            return errorPage(self.response, "Not a member", cluburl, 403)

        acturl = urldict['ActivityView'].path(id)
        if (oper == 'join'):
            actp = ActivityParticipator.between(mem, actobj)
            if (not actp):
                actp = ActivityParticipator(member=mem, activity=actobj)
                actp.put()
            return infoPage(
                self.response, "Successfully Joined",
                "%s has join activity %s" % (mem.name, actobj.name), acturl)
        elif (oper == 'quit'):
            actp = ActivityParticipator.between(mem, actobj)
            if (actp):
                if (actp.confirmed):
                    return errorPage(self.response,
                                     "Cannot delete confirmed participator",
                                     acturl, 403)
                else:
                    actp.delete()
            return infoPage(
                self.response, "Successfully Quited",
                "%s success quit activity %s" % (mem.name, actobj.name),
                acturl)
        elif (oper == 'confirm'):
            actp = ActivityParticipator.between(mem, actobj)
            if (actp):
                actp.confirmed = not actp.confirmed
                actp.put()
                return infoPage(
                    self.response, "Successfully Confirmed",
                    "success confirmed %s join activity %s" %
                    (mem.name, actobj.name), acturl)
            else:
                return errorPage(self.response, "No Such a Member", acturl,
                                 404)
        elif (oper == 'bill' or oper == "rebill"):
            billobj = ActivityBill.generateBill(
                actobj, oper ==
                "rebill")  #If in rebill operation, we could enable rebill
            if (billobj):
                billobj.put()
                billDict = dict(billobj=billobj)
                return infoPage(self.response, "Successfully Billded",
                                str(billobj.memberBill), acturl)
            else:
                return errorPage(self.response, "Error Will Generate Bill",
                                 acturl, 501)