def createPrivateArea(self, newName, newDisplayName): results = {'result': False} try: PrivateArea.create(newName, newDisplayName) results = {'result': True, 'newNamespace': newName} except WhysaurusException as e: results['error'] = str(e) return results
def createPrivateArea(self, newName, newDisplayName): results = {'result': False} try: PrivateArea.create(newName, newDisplayName) results = { 'result': True, 'newNamespace': newName } except WhysaurusException as e: results['error'] = str(e) return results
def createPrivateArea(self, newName): results = {'result': False} try: PrivateArea.create(newName) results = { 'result': True, 'newNamespace': newName } except WhysaurusException as e: results['error'] = str(e) else: results['error'] = "New name must not be longer that 100 and may only include alphanumeric characters and . - _" return results
def setPrivateAreaUser(self, areaName): if PrivateArea.exists(areaName): self.session['currentArea'] = areaName self.session['currentAreaDisplayName'] = PrivateArea.getDisplayName(areaName) user = self.current_user self.response.out.write( self.template_render( 'areaCreateUser.html', { 'privateAreaName':areaName, 'user':user, 'headerHideActions':1 })) else: self.response.out.write('Sorry, that classroom %s does not appear \ to exist. Click <a href="/">here</a> to go home' % areaName)
def MakeLinksAllAreas(self): q = PrivateArea.query() for pa in q.iter(): logging.info("Kicking off the make links for private area: " + pa.name) namespace_manager.set_namespace(pa.name) self.MakeLinks()
def get(self): mode = self.request.get('mode') bigMessage = [] namespace_manager.set_namespace('') namespaces = PrivateArea.query() for pa in namespaces.iter(): logging.info("Looking at private area: " + pa.name) bigMessage = bigMessage + self.checkNamespace(pa.name) bigMessage = bigMessage + self.checkNamespace('') template_values = { 'messages': bigMessage, 'user': self.current_user, 'currentArea': self.session.get('currentArea') } if mode and mode == 'screen': self.response.out.write( self.template_render('message.html', template_values)) else: path = os.path.join(os.path.dirname(__file__), '../templates/dbcheck.html') # old version, delete once the new version is working: # mail.send_mail(sender='*****@*****.**', # to='*****@*****.**', # subject='Database Integrity Check Results %s' % str(PST.convert(datetime.datetime.now())), # html=template.render(path, template_values), # body=str(bigMessage), # reply_to="*****@*****.**" # ) # new version: message = mail.EmailMessage( sender='*****@*****.**', to='*****@*****.**', cc='*****@*****.**', subject='Database Integrity Check Results %s' % str(PST.convert(datetime.datetime.now())), body=str(bigMessage), reply_to="*****@*****.**") if html: message.html = template.render(path, template_values), message.send() # (end of new version) self.queueNightlyTask() template_values = { 'message': "Sent email successfully. Queued nightly task.", 'user': self.current_user, 'currentArea': self.session.get('currentArea') } self.response.out.write( self.template_render('message.html', template_values))
def get(self): userNamespace = namespace_manager.get_namespace() namespace_manager.set_namespace('') user = self.current_user if user is None: self.response.out.write('Need to login.') return if not user.isAdmin: self.response.out.write('User not authorized.') return queryUsr = WhysaurusUser.query().order(-WhysaurusUser.lastLogin) areas = PrivateArea.query() users = [] i = 0 for yUser in queryUsr.iter(): users = users + [{ 'u': yUser, 'index': i, 'userKey': yUser.key.urlsafe() }] i = i + 1 paginator = Paginator(users, self.USERS_PER_PAGE) page = self.request.get('page') try: paginatedUsers = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. paginatedUsers = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. paginatedUsers = paginator.page(paginator.num_pages) template_values = { 'user': user, 'users': paginatedUsers, 'areas': areas, 'currentArea': self.session.get('currentArea'), 'currentAreaDisplayName': self.session.get('currentAreaDisplayName') } self.response.out.write( self.template_render('admin.html', template_values)) namespace_manager.set_namespace(userNamespace)
def get(self): userNamespace = namespace_manager.get_namespace() namespace_manager.set_namespace('') user = self.current_user if user is None: self.response.out.write('Need to login.') return if not user.isAdmin: self.response.out.write('User not authorized.') return queryUsr = WhysaurusUser.query().order(-WhysaurusUser.lastLogin) areas = PrivateArea.query() users = [] i = 0 for yUser in queryUsr.iter(): users = users + [{'u':yUser, 'index':i, 'userKey': yUser.key.urlsafe()}] i = i+1 paginator = Paginator(users, 25) page = self.request.get('page') try: paginatedUsers = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. paginatedUsers = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. paginatedUsers = paginator.page(paginator.num_pages) template_values = { 'user': user, 'users': paginatedUsers, 'areas': areas, 'currentArea':self.session.get('currentArea'), 'currentAreaDisplayName':self.session.get('currentAreaDisplayName') } self.response.out.write( self.template_render('admin.html', template_values)) namespace_manager.set_namespace(userNamespace)
def setUserArea(self, area_name): u = self.current_user if u is None: return None # Handler doesn't like being called with a blank url var # so "public" is our special string to denote... that if area_name == 'public': area_name = '' # Force public if they're trying something uncouth if area_name != '' and not area_name in u.privateAreas: area_name = '' self.session['currentArea'] = area_name self.session['currentAreaDisplayName'] = PrivateArea.getDisplayName(area_name) namespace_manager.set_namespace(area_name) return area_name
def uploadUserPage(self): userNamespace = namespace_manager.get_namespace() namespace_manager.set_namespace('') areas = PrivateArea.query() user = self.current_user template_values = { 'user': user, 'areas':areas, 'currentArea':self.session.get('currentArea'), 'currentAreaDisplayName':self.session.get('currentAreaDisplayName') } if user and user.isAdmin: self.response.out.write( self.template_render('uploadUsers.html', template_values)) else: self.response.out.write('User not authorized. ') namespace_manager.set_namespace(userNamespace)
def get(self): user = self.current_user queryUsr = WhysaurusUser.query() areas = PrivateArea.query().fetch(50) users = [] i = 0 for yUser in queryUsr.iter(): users = users + [{'u':yUser, 'index':i, 'userKey': yUser.key.urlsafe()}] i = i+1 template_values = { 'user': user, 'users': users, 'areas': areas, 'currentArea':self.session.get('currentArea') } if user and user.admin: path = os.path.join(constants.ROOT, 'templates/admin.html') self.response.out.write(template.render(path, template_values)) else: self.response.out.write('User not authorized. ')
def get(self): mode = self.request.get('mode') bigMessage = [] namespace_manager.set_namespace('') namespaces = PrivateArea.query() for pa in namespaces.iter(): logging.info("Looking at private area: " + pa.name) bigMessage = bigMessage + self.checkNamespace(pa.name) bigMessage = bigMessage + self.checkNamespace('') template_values = { 'messages': bigMessage, 'user': self.current_user, 'currentArea':self.session.get('currentArea') } if mode and mode == 'screen': path = os.path.join(os.path.dirname(__file__), '../templates/message.html') self.response.out.write(template.render(path, template_values)) else: path = os.path.join(os.path.dirname(__file__), '../templates/dbcheck.html') mail.send_mail(sender='*****@*****.**', to='*****@*****.**', subject='Database Integrity Check Results %s' % str(PST.convert(datetime.datetime.now())), html=template.render(path, template_values), body=str(bigMessage), reply_to="*****@*****.**" ) self.queueNightlyTask() template_values = { 'message': "Sent email successfully. Queued nightly task.", 'user': self.current_user, 'currentArea':self.session.get('currentArea') } path = os.path.join(os.path.dirname(__file__), '../templates/message.html') self.response.out.write(template.render(path, template_values))