def summary(): car_name = '' car = Car.all().filter('user', users.GetCurrentUser()).filter('active', 1).get() if (car): car_name = car.name + u': ' fuels = Fuel.all().filter('user', users.GetCurrentUser()).filter( 'car', car.pid).order('-date').order('-counter') else: fuels = Fuel.all().filter( 'user', users.GetCurrentUser()).order('-date').order('-counter') counter_max = 0 counter_min = 0 total_volume = 0 for f in fuels: counter_min = f.counter if (counter_max == 0): counter_max = f.counter else: total_volume += f.volume km = counter_max - counter_min if (total_volume == 0) or (km == 0): return car_name + u'Не удалось вычислить средний расход' return car_name + u'<span style="color:yellow">' + str( round((total_volume / km) * 100, 2)) + u'</span> л на 100 км'
def get(self): if not access.can_see_most_pages(users.GetCurrentUser(), users.IsCurrentUserAdmin()): raise Forbidden img = images.Image.get_by_key(self.request.get("key")) data = { "meta": img.get_info(), "key": img.get_key(), "versions": [ ("thumbnail", img.get_url(75, True), img.get_code(75, True)), ("small", img.get_url(200, False), img.get_code(200, False)), ("medium", img.get_url(500, False), img.get_code(500, False)), ("original", img.get_url(), img.get_code()), ] } page_title = "Image:" + img.get_key() data["pages"] = model.WikiContent.find_backlinks_for(page_title) html = view.view_image(data, user=users.GetCurrentUser(), is_admin=users.IsCurrentUserAdmin()) self.reply(html, 'text/html')
def saldo_recount(): saldos = Saldo.all().filter('user', users.GetCurrentUser()) if saldos: db.delete(saldos) trips = Trip.all().filter('user', users.GetCurrentUser()) for t in trips: saldo_update(t.driver, t.passenger, t.oper, t.summa())
def init(): apps = Apps.all().filter('user', users.GetCurrentUser()) if apps: db.delete(apps) s1 = trips.summary() s2 = fuels.summary() s3 = communal.summary() s4 = garage.summary(1) Apps(pid=1, user=users.GetCurrentUser(), name=u'Проезд', page='/trip', title='', summary=s1).put() Apps(pid=2, user=users.GetCurrentUser(), name=u'Заправка', page='/fuel', title='', summary=s2).put() Apps(pid=3, user=users.GetCurrentUser(), name=u'Квартира', page='/communal', title='', summary=s3).put() Apps(pid=4, user=users.GetCurrentUser(), name=u'Гараж', page='/garage', title='', summary=s4).put()
def runTest(): from google.appengine.api import users logging.debug("Entering datastore runTest() method") currentList = MovieList.getMovieList(users.GetCurrentUser()) currentList.addMovie(Movie(id="tt0000001", title="Saw 2")) currentList.addMovie(Movie(id="tt0000002", title="Patriot")) for movie in currentList.getMovies(): logging.debug("Found a movie: " + movie.title) anotherList = MovieList.getMovieList(users.GetCurrentUser()) anotherList.addMovie(Movie(id="tt0000003", title="Die Hard")) anotherList.addMovie(Movie(id="tt0000003", title="Die Hard")) anotherList.addMovie(Movie(id="tt0000004", title="Cliffhanger")) for movie in anotherList.getMovies(): logging.debug("Found a movie: " + movie.title) thirdList = MovieList.getMovieList(users.GetCurrentUser()) for movie in thirdList.getMovies(): logging.debug("Found a movie: " + movie.title) logging.debug("Exiting datastore runTest() method")
def get(i_pid): gar = Garage.all().filter('user', users.GetCurrentUser()).filter('pid', i_pid).get() if gar: return gar else: # Инициализация полей новой записи last_course = 0 last_kontr = '' last = Garage.all().filter( 'user', users.GetCurrentUser()).order('-date').order('-pid').get() if last: last_course = last.course last_kontr = last.kontr return Garage(pid = 0, \ user = users.GetCurrentUser(), \ date = datetime.datetime.now(), \ kol = 1., \ price = 0, \ course = last_course, \ usd = 0, \ kontr = last_kontr, \ text = '')
def get(self): if not access.can_see_most_pages(users.GetCurrentUser(), users.IsCurrentUserAdmin()): raise Forbidden lst = images.Image.find_all() html = view.view_image_list(lst, users.GetCurrentUser(), users.IsCurrentUserAdmin()) self.reply(html, "text/html")
def check_param(self, a_pid, a_act, a_name, a_dative, a_me): if (a_act != 'insert') and (a_act != 'update') and (a_act != 'delete') and (a_act != 'cancel'): persons.status = 'Недопустимое значение параметра action: "' + a_act + '"' return False self.i_act = a_act if (self.i_act == 'update') or (self.i_act == 'delete'): try: self.i_pid = int(a_pid) except ValueError: persons.status = 'Прикладная ошибка: не определен идентификатор записи' self.i_act = 'cancel' return False if (self.i_act == 'update') or (self.i_act == 'insert'): if (a_name != ''): persons.last_name = a_name if (a_dative != ''): persons.last_dative = a_dative if (a_name != ''): self.i_name = a_name p = persons.Person.all().filter('user', users.GetCurrentUser()).filter('name', a_name).get() if p: persons.status = 'Такое имя уже есть' self.i_act = 'cancel' return False else: persons.status = 'Не задано имя' self.i_act = 'cancel' return False if (a_dative != ''): self.i_dative = a_dative p = persons.Person.all().filter('user', users.GetCurrentUser()).filter('dative', a_dative).get() if p: persons.status = 'Такое имя в дательном падеже уже есть' self.i_act = 'cancel' return False else: persons.status = 'Не задано имя в дательном падеже' self.i_act = 'cancel' return False self.i_me = 0 if (a_me == 'true'): self.i_me = 1 me_code = persons.me_code() if (me_code != 0): persons.status = 'Уже есть персона, помеченная признаком "Я"' self.i_act = 'cancel' return False return True
def botverse_submit(request): form = EntityLinksForm(request.POST) if form.is_valid(): link = create_entity_model(form) if users.GetCurrentUser(): link.fullName = users.GetCurrentUser() db.put(link) # return home return botverse_confirm(request)
def get(self): user = users.get_current_user() if user: print("encontrado",users.GetCurrentUser()) self.render_template('index.html', {}) else: print("no encontrado",users.GetCurrentUser()) self.redirect(users.create_login_url(self.request.uri))
def sign(request): form = GuestbookForm(request.POST) if form.is_valid(): post = Post(message=form.clean_data['message']) if users.GetCurrentUser(): post.author = users.GetCurrentUser() post.put() return HttpResponseRedirect('/')
def insert(i_name, i_dative, i_me): maxnum = 1 last = Person.all().filter('user', users.GetCurrentUser()).order('-pid').get() if last: maxnum = last.pid + 1 pers = Person(pid = maxnum, \ user = users.GetCurrentUser(), \ name = i_name, \ dative = i_dative, \ me = i_me) if pers: pers.put()
def all(): car = Car.all().filter('user', users.GetCurrentUser()).filter('active', 1).get() if car: # update_old_fuel(car.pid) all = Fuel.gql( 'WHERE user = :1 AND car = :2 ORDER BY date DESC, counter DESC LIMIT 20', users.GetCurrentUser(), car.pid) else: all = Fuel.gql( 'WHERE user = :1 ORDER BY date DESC, counter DESC LIMIT 20', users.GetCurrentUser()) return all
def post(self): result = {'result': True, 'error': ''} try: # input marshalling projectId = int(self.request.get('projectId')) title = self.request.get('title') description = self.request.get('description') tagJson = unicode(self.request.get('tags')) tags = simplejson.loads(tagJson) # should be an array! user = users.GetCurrentUser() # add the new tags in case we don't have them already Tags.InsertIfNotHere(user, tags) # grab the project and the sortOrder project = Project.get_by_id(projectId) sortOrder = Task.NextSortOrderForProject(project) # create t = Task(parent=project, tags=tags, description=description, title=title, sortOrder=sortOrder, user=user) t.put() result['data'] = t.toDict() except Exception, e: result['result'] = False result['error'] = 'Error: %s' % e
def post(self): result = {'result': True, 'error': ''} try: # input marshalling taskId = int(self.request.get('taskId')) projectId = int(self.request.get('projectId')) title = self.request.get('title') description = self.request.get('description') tagJson = unicode(self.request.get('tags')) tags = simplejson.loads(tagJson) # should be an array! # add the new tags in case we don't have them already Tags.InsertIfNotHere(users.GetCurrentUser(), tags) # grab the task task = Task.get_by_id(taskId, Key.from_path('Project', projectId)) task.title = title task.description = description task.tags = tags task.put() result['data'] = task.toDict() except Exception, e: result['result'] = False result['error'] = 'Error: %s' % e
def get(self): user = users.GetCurrentUser() if (not user): self.respondWithTemplate('please-sign-in.html', {'action': 'view your Radars'}) else: radars = db.GqlQuery("select * from Radar where user = :1 order by number_intvalue desc", user).fetch(1000) self.respondWithTemplate('radar-list.html', {"radars": radars})
def post(self): event_status = 'not_created' event_link = None # Get the current user self.current_user = users.GetCurrentUser() # Manage our Authentication for the user self.ManageAuth() self.LookupToken() form = cgi.FieldStorage() attendee_list = [] if form.has_key( 'event_attendees') and form['event_attendees'] is not None: if isinstance(form['event_attendees'], list): for attendee in form['event_attendees']: attendee_list.append(attendee.value) else: attendee_list.append(form['event_attendees'].value) event = self.InsertEvent(form['event_title'].value, form['location'].value, form['event_description'].value, form['datepicker'].value, attendee_list) if event is not None: alt_link = event.GetAlternateLink().href self_link = event.GetSelfLink().href xml = self.FormatXML("%s" % event.ToString()) event_status = 'created' ed = EventDetails() if users.get_current_user(): ed.author = users.get_current_user() ed.eventname = form['event_title'].value ed.description = form['event_description'].value ed.date = form['datepicker'].value ed.location = form['location'].value ed.location_cord1 = form['lat'].value ed.location_cord2 = form['lng'].value ed.put() template_values = { 'event_status': event_status, 'alt_link': alt_link, 'self_link': self_link, 'xml': xml, 'event_title': form['event_title'], 'event_description': form['event_description'], 'attendee_list': attendee_list, 'app_name': APP_NAME, 'css_link': CSS_LINK, } self.redirect('/ViewCal') template_file = 'process_event.html' path = os.path.join(os.path.dirname(__file__), 'main_templates', template_file) self.response.out.write(template.render(path, template_values))
def process_request(self, request): # pylint: disable-msg=R0201 """Method defined by Django to handle processing requests. Args: request: the http request to process Returns: None """ user = users.GetCurrentUser() request.user = user request.profile = None if user: request.user_is_admin = users.is_current_user_admin() profile = models.UserProfile.load(user.email()) if not profile: if request.user_is_admin: profile = models.UserProfile(email=user.email(), is_superuser=True) profile.put() logging.info('Created profile for admin %s' % profile.email) request.profile = profile return None
def generate(self, template_name, template_values={}): if users.get_current_user(): url = util.xhtmlize_url(users.create_logout_url(self.request.uri)) url_linktext = 'Logout' else: url = util.xhtmlize_url(users.create_login_url(self.request.uri)) url_linktext = 'Login' ym = datetime.datetime.now().strftime("%Y %m %d").split() cal = calendar.HTMLCalendar().formatmonth(int(ym[0]), int(ym[1])) pattern = '<td class="\w\w\w">' + ym[2] + '</td>' today = '<td id="today">' + ym[2] + '</td>' cal = re.sub(pattern, today, cal) values = { 'user': users.GetCurrentUser(), 'user_is_admin': users.is_current_user_admin(), 'user_nickname': util.getUserNickname(users.get_current_user()), 'url': url, 'url_linktext': url_linktext, 'categories': util.getCategoryLists(), 'calendar': cal, 'tags': util.getTagLists(), 'archives': util.getArchiveLists(), 'counter': util.getCounter(), } values.update(template_values) path = os.path.join(os.path.dirname(__file__), template_name) self.response.out.write(template.render(path, values))
def get(self): user = users.GetCurrentUser() # we keep request-by-id in case there are problems with the radar number (accidental duplicates, for example) id = self.request.get("id") if id: radar = Radar.get_by_id(int(id)) if (not radar): self.respondWithText('Invalid Radar id') else: self.respondWithTemplate( 'radar-view.html', { "mine": (user == radar.user), "radar": radar, "radars": radar.children(), "comments": radar.comments(), "user": user }) return number = self.request.get("number") if number: self.redirect("/" + number) return else: self.respondWithText( 'Please specify a Radar by number or openradar id')
def post( self ): result = { 'result': True, 'error': '' } try: # input marshalling name = self.request.get( 'projectName' ) user = users.GetCurrentUser() # first create the Tags object if we dont have one for the user already Tags.CreateTagsForUserIfNotCreated( user ) # get our sortOrder sortOrder = Project.NextSortOrder() # put the project then return it as json p = Project( user = user, name = name, sortOrder = sortOrder ) p.put() # add this to the return package result['data'] = p.toDict() except Exception, e: result['result'] = False result['error'] = 'Error: %s' % e
def get( self ): result = { 'projects': None, 'tags': None, 'totalTasks': 0, 'totalImportant': 0 } user = users.GetCurrentUser() # grab all the projects for the current user projects = Project.gql( 'where user = :1 order by sortOrder', user ) result['projects'] = [p.toDict() for p in projects] # grab all the available tags tags = Tags.gql( 'where user = :1', user ).get() if tags == None: result['tags'] = [] else: result['tags'] = tags.tags # count the tasks and important tasks result['totalTasks'] = Task.CountAllTasks() result['totalImportant'] = Task.CountAllImportantTasks() #self.response.headers['Content-Type'] = 'application/json' self.response.out.write( simplejson.dumps( result ) )
def post( self ): result = { 'result': True, 'error': '' } try: # input marshalling orderJson = unicode( self.request.get( 'order' ) ) orderList = simplejson.loads( orderJson ) # should be an array of dicts [{id: 3, sortOrder:3}]! # we need a list of dictionaries or we are out of here if type( orderList ).__name__ != 'list' or type( orderList[0] ).__name__ != 'dict': raise Exception( 'order must be a list of dictionaries!' ) totalProjects = Project.gql( 'where user = :1', users.GetCurrentUser() ).count( 1000 ) # we need the list to have the same number eles as we have tasks if len( orderList ) != totalProjects: raise Exception( 'order must have the same number of elements as there are projects!' ) self.reorder( orderList ) #db.run_in_transaction( self.reorder, orderList ) except Exception, e: result['result'] = False result['error'] = 'Error: %s' % e
def _RemoteSend(self, request, response, method): """Sends a request remotely to the datstore server. """ tag = self.__app_id user = users.GetCurrentUser() if user != None: tag += ":" + user.email() tag += ":" + user.nickname() tag += ":" + user.auth_domain() api_request = remote_api_pb.Request() api_request.set_method(method) api_request.set_service_name("datastore_v3") api_request.set_request(request.Encode()) api_response = remote_api_pb.Response() api_response = api_request.sendCommand(self.__datastore_location, tag, api_response, 1, self.__is_encrypted, KEY_LOCATION, CERT_LOCATION) if not api_response or not api_response.has_response(): raise datastore_errors.InternalError( 'No response from db server on %s requests.' % method) if api_response.has_application_error(): error_pb = api_response.application_error() logging.error(error_pb.detail()) raise apiproxy_errors.ApplicationError(error_pb.code(), error_pb.detail()) if api_response.has_exception(): raise api_response.exception() response.ParseFromString(api_response.response())
def decorate(self, *args, **kwargs): """Check if user is authorized as admin.""" current_user = users.GetCurrentUser() datastore.CURRENT_DOMAIN = current_user.email().split('@')[1] logging.info('set CURRENT_DOMAIN to %s', datastore.CURRENT_DOMAIN) try: if not datastore.HOSTED and users.is_current_user_admin(): logging.debug( 'User is an App Engine app admin, so allowing access.') handler_method(self, *args, **kwargs) elif google_directory_service.IsInAdminGroup(current_user): logging.debug( 'User is in configured admin group, so allowing access.') handler_method(self, *args, **kwargs) else: logging.warning('%s not authorized for access.', current_user.email()) self.abort(403) except google_directory_service.SetupNeeded: logging.warning('credentials not set up, so configuring') if datastore.HOSTED: self.redirect('/setup/') else: logging.warning( 'Only App Engine admins are allowed access. To allow another group ' ', configure a service account in config.py') self.abort(403)
def testGetOutOfBoundsVersionOfConfigurationSettings(self): config_data = { 'steps_for_masters_rules': _MOCK_STEPS_FOR_MASTERS_RULES, 'builders_to_trybots': _MOCK_BUILDERS_TO_TRYBOTS, 'try_job_settings': _MOCK_TRY_JOB_SETTINGS, 'swarming_settings': _MOCK_SWARMING_SETTINGS } self.mock_current_user(user_email='*****@*****.**', is_admin=True) wf_config.FinditConfig.Get().Update(users.GetCurrentUser(), True, **config_data) self.assertRaisesRegexp( webtest.app.AppError, re.compile('The requested version is invalid or not found.', re.MULTILINE | re.DOTALL), self.test_app.get, '/config', params={ 'version': 0, 'format': 'json' }) self.assertRaisesRegexp( webtest.app.AppError, re.compile('The requested version is invalid or not found.', re.MULTILINE | re.DOTALL), self.test_app.get, '/config', params={ 'version': 2, 'format': 'json' })
def post(self): user = users.GetCurrentUser() if (not user): self.respondWithTemplate('please-sign-in.html', {'action': 'edit Radars'}) else: id = self.request.get("id") radar = Radar.get_by_id(int(id)) if not radar: self.respondWithText('Invalid Radar id') elif radar.user != user: self.respondWithText('Only the owner of a Radar can edit it') else: radar.title = self.request.get("title") radar.number = self.request.get("number") radar.number_intvalue = int(self.request.get("number")) radar.status = self.request.get("status") radar.description = self.request.get("description") radar.resolved = self.request.get("resolved") radar.product = self.request.get("product") radar.classification = self.request.get("classification") radar.reproducible = self.request.get("reproducible") radar.product_version = self.request.get("product_version") radar.originated = self.request.get("originated") radar.modified = datetime.datetime.now() radar.put() memcache.flush_all() self.redirect("/myradars")
def get(self): user = users.GetCurrentUser() if not user: page = memcache.get(self.request.path) if page: self.respondWithText(page) return m = RADAR_PATTERN.match(self.request.path) if m: bare = self.request.get("bare") number = m.group(1) radars = Radar.gql("WHERE number = :1", number).fetch(1) if len(radars) != 1: self.respondWithTemplate('radar-missing.html', {"number":number}) return radar = radars[0] if (not radar): self.respondWithTemplate('radar-missing.html', {"number":number}) else: path = os.path.join(os.path.dirname(__file__), os.path.join('templates', 'radar-view.html')) page = template.render(path, {"mine":(user == radar.user), "radar":radar, "radars":radar.children(), "comments": radar.comments(), "bare":bare}) if not user: memcache.add(self.request.path, page, 3600) # one hour, but we also invalidate on edits and adds self.respondWithText(page) return
def curcarname(): p = Car.all().filter('user', users.GetCurrentUser()).filter('active', 1).get() if p: return p.name else: return ''
def post(self): user = users.GetCurrentUser() if (not user): self.error(401) self.respondWithText("You must login to remove a comment") return commentKey = self.request.get("key") comment = Comment.get(commentKey) if (not comment): self.error(400) self.respondWithText( "Tried to remove a post that doesn't exist? Couldn't find post to remove." ) return if (not comment.editable_by_current_user()): self.error(401) self.respondWithText( "You must be the comment's owner, or an admin, to remove this comment." ) return if (comment.deleteOrBlank() == "blanked"): self.respondWithText(comment.html_body()) else: self.respondWithText("REMOVED")