def update_profile(request): form = ProfileForm(**json.loads(request.body)) if not form.validate(): raise Http400 user = UserModel.get_by_id(request.user.key().id()) user.name = form.name.data user.put() return JsonResponse(user)
def delete_user(request, user_id): user_id = long(user_id) if request.user.key().id() == user_id: raise Http403 user = UserModel.get_by_id(user_id) if user is None: raise Http404 user.delete() return HttpResponse()
def get_application(request, application_id): application = ApplicationModel.get_by_id(long(application_id)) if application is None: raise Http404 if request.user.permission != UserPermission.root and\ request.user.key().id() not in application.member_ids: raise Http403 result = application.dict() result['members'] = [x.dict() for x in UserModel.get_by_id(application.member_ids) if not x is None] return JsonResponse(result)
def update_profile(request): form = ProfileForm(**json.loads(request.body)) if not form.validate(): raise Http400 user = UserModel.get_by_id(request.user.key().id()) if user is None: raise Http404 user.name = form.name.data user.put() return JsonResponse(user)
def update_user(request, user_id): user_id = long(user_id) form = UserForm(**json.loads(request.body)) if not form.validate(): raise Http400 user = UserModel.get_by_id(user_id) if user is None: raise Http404 user.name = form.name.data user.permission = form.permission.data user.put() return JsonResponse(user)
def get_project(request, project_id): project = ProjectModel.get_by_id(long(project_id)) if project is None: raise Http404('not found the project %s' % project_id) if request.user.permission != UserPermission.root and\ request.user.key().id() not in project.member_ids: raise Http403 labels = LabelModel.all().filter('project =', project.key()).order('title').fetch(100) result = project.dict() result['members'] = [x.dict() for x in UserModel.get_by_id(project.member_ids) if not x is None] result['labels'] = [x.dict() for x in labels] return JsonResponse(result)
def __add_log(request, application_key, args): """ Add the log. :param args: {dict} The log. :param is_jsonp: {bool} :return: The django response. """ form = APILogForm(key=application_key, **args) if not form.validate(): raise Http400 applications = ApplicationModel.all().filter("app_key =", form.key.data).fetch(1) if not len(applications): raise Http404 application = applications[0] # Is the log exist? logs = ( LogModel.all() .filter("title =", form.title.data) .filter("is_close =", False) .filter("application =", application.key()) .fetch(1) ) if len(logs): # update log log = logs[0] log.count += 1 log.update_time = datetime.utcnow() if not form.user.data is None and form.user.data not in log.users: log.users.append(form.user.data) else: # add the new log log = LogModel(application=application, title=form.title.data) if not form.user.data is None: log.users = [form.user.data] if not form.document.data is None: log.document = form.document.data log.user_agent = request.META.get("HTTP_USER_AGENT") log.ip = os.environ.get("REMOTE_ADDR") log.put() if log.count == 1 and application.email_notification: # send email notification to members gae_account = getattr(settings, "GAE_ACCOUNT") domain = getattr(settings, "HOST") users = UserModel.get_by_id(application.member_ids) message = mail.EmailMessage(sender=gae_account, subject="%s has a new log at Victorique." % application.title) message.to = [x.email for x in users if not x is None] message.body = "There is a new log at Victorique.\n%s\nhttps://%s/applications/%s/logs/%s" % ( log.title, domain, application.key().id(), log.key().id(), ) message.send() index = search.Index(namespace="Logs", name=str(application.key().id())) search_document = search.Document( doc_id=str(log.key().id()), fields=[ search.TextField(name="users", value=unicode(log.users)), search.TextField(name="title", value=log.title), search.TextField(name="document", value=log.document_json), search.TextField(name="ip", value=log.ip), search.TextField(name="user_agent", value=log.user_agent), search.DateField(name="update_time", value=log.update_time), ], ) index.put(search_document)
def get_user(request, user_id): user_id = long(user_id) user = UserModel.get_by_id(user_id) if user is None: raise Http404 return JsonResponse(user)