Beispiel #1
0
 def __before__(self):
     super(ServiceController, self).__before__()
     c.app_list = [['','']]
     self.site = Site.get(-1,c.site_id)
     
     self.other = []
     if not hasattr(self,'filters'):
         self.filters = FilterList()
         request.environ['filters'] = self.filters
     self.filters.context = 'service'
     if self.filters.current() == None:
         self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
     if 'filterstatus' in request.params and \
         request.params['filterstatus'] == 'refresh':
         self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
     c.filters = self.filters
Beispiel #2
0
 def __before__(self):
     super(ServiceController, self).__before__()
     log.debug("In __before__")
     app_list = [['','']]
     self.other = []
     if not hasattr(self,'filters'):
         #self.db.cache.delete("filters-personid-%s" % self.current_user.id)
         log.debug("Creating filter list, passing info")
         self.filters = FilterList(cache=self.db.cache,person_id=self.current_user.id if self.current_user else 0)
     self.filters.context = 'service'
     if self.filters.current() == None:
         self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}),
                 cache=self.db.cache)
     if 'filterstatus' in self.request.arguments and \
         self.get_argument("filterstatus") == 'refresh':
         self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
     self.template_vals.update({'filters':self.filters})
Beispiel #3
0
class ServiceController(RestMixin,BaseHandler):
    def __before__(self):
        super(ServiceController, self).__before__()
        log.debug("In __before__")
        app_list = [['','']]
        self.other = []
        if not hasattr(self,'filters'):
            #self.db.cache.delete("filters-personid-%s" % self.current_user.id)
            log.debug("Creating filter list, passing info")
            self.filters = FilterList(cache=self.db.cache,person_id=self.current_user.id if self.current_user else 0)
        self.filters.context = 'service'
        if self.filters.current() == None:
            self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}),
                    cache=self.db.cache)
        if 'filterstatus' in self.request.arguments and \
            self.get_argument("filterstatus") == 'refresh':
            self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
        self.template_vals.update({'filters':self.filters})
    
    def _filter(self,offset=0,limit=20):
        f = self.filters.current()
        f.start()
        qry = f.finish(offset=offset,limit=limit)
        log.info('offset=%s, limit=%s, f.count=%s' % (offset,limit,f.count))
        
        if offset != 0 and f.count > 0 and f.count >= f.offset:
            c.item = qry[0]
        elif offset == 0 and f.count > 0: #viewlist existing
            c.services = qry
        elif f.count <= f.offset:
            return self.index()
        else:
            c.services = qry
        self.filters.save(cache=self.db.cache)
        return self._view()
    
    def _view(self):
        if c.services:
            c.services = dspager(c.services,20)
        
        self.render('/service/service.html')
    
    #@requires_admin
    def index(self,id=id):
        log.debug("in index start")
        services = Service.all().filter_by(list_public=1)
        recent = Service.recent_updates(5)
        self.render('service/service.html',services=services,recent=recent)
    
    def view(self,id=0):
        item = Service.get(-1,id)
        self.render('service/service.html',item=item)
    
    def appview(self,id=0):
        item = App.get(-1,id)
        if not (item.list_public or (self.user and self.user.site_id == item.site_id)):
            item = None
        self.render('service/app.html',item=item)
    
    @requires_admin
    def raiseerror(self,id=0):
        raise Exception('for testing')
    
    def owner(self,id=0):
        filter = id
        log.info('other=%s,filter=%s, filters=%s' % (self.other,filter,self.filters))
        if filter in ['me','mine'] and self.other == []: # new
            self.filters.set(ServiceFilter(name='owner'),cache=self.db.cache)
            self.filters.current().clauses['owner'] = 'mine' # filter value
        elif filter == 'all':
            self.filters.set(ServiceFilter(name='owner'),cache=self.db.cache)
            self.filters.current().clauses['owner'] = 'all' # filter value
        return self._filter(offset=0,limit=20)
    
    @requires_admin
    def apps(self,id=0):
        apps = App.by_site(self.user.site_id)
        self.render('/service/app.html',apps=apps)
    
    @requires_admin
    def appeditform(self,id=0):
        if id == 0 or id == None or id == '0':
            item = App()
        else:
            item = App.get(-1,id)
            if not (item.list_public or (self.user and self.user.site_id == item.site_id)):
                item = None
        self.render('/service/app_edit.html',item=item)
    
    @requires_admin
    def appedit(self,id=0):
        log.info('what the heck, in edit %s' % id)
        id = self.get_argument("app_id")
        site = Site.get(-1,self.user.site_id)
        if id == 0 or id == None or id == '0':
            app = App()
            app.site_id = site.id
            app.owner_id = self.user.id
            log.info('hm, id == 0')
        else:
            app = App.get(site.id,id)
        log.info('args = %s' % (str(self.request.arguments)))
        app.slug = sanitize(self.get_argument('real_permalink2'))
        app.name = sanitize(self.get_argument('app_name'))
        app.authn = sanitize(self.get_argument('authn'))
        #if 'description' in self.request.arguments:
        app.description = sanitize(self.get_argument('description',''))
        app.base_url = sanitize(self.get_argument('base_url'))
        app.save()
        self.write(str(app.id))
    
    #@validate(schema=ServiceValidation(), form='edit')
    def edit_POST(self,id=0):
        item = None
        form = ServiceForm(QueryDict(self.request.arguments))
        if form.validate():
            if form.id.data and int(form.id.data) == 0:
                item = Service(site_id=self.user.site_id, name=sanitize(form.name.data))
                item.owner_id = self.user.id
            elif self.user.issysadmin:
                item = Service.get(-1,int(form.id.data))
            else:
                item = Service.get(site_id,int(form.id.data))
        
        item.name = sanitize(form.name.data)
        item.key = sanitize(form.real_permalink.data)
        item.description = sanitize(form.description.data)
        item.format = sanitize(form.format.data)
        item.method_url = sanitize(form.method_url.data)
        if hasattr(form,'list_public'):
            item.list_public = int(form.list_public.data)
        if hasattr(form,'app'):
            item.app_id = form.app.data
        if item.id > 0:
            item.save()
        else:
            item.save()
            self.add_alert('Service Added')
        return self.index()
    
    @requires_admin
    #@rest.dispatch_on(POST="service_edit_post")
    def edit(self,id=0):
        log.info('what the heck, in service edit id=%s' % id)
        site = Site.get(-1,self.user.site_id)
        app_list = [['%s' % app.id,app.name] for app in site.apps]
        if id == 0 or id == None or id=='':
            app = App()
            service = Service()
            log.info('hm, id == 0')
        else:
            service = Service.get(self.user.site_id,id)
            if not service and not self.user.issysadmin:
                self.add_alert('No permission to this service')
                return self.index()
            elif self.user.issysadmin:
                service = Service.get(-1,id)
            if service:
                app = service.app
        self.render('/service/service_edit.html',site=site,app_list=app_list,
            app=app,serviceitem=service)
Beispiel #4
0
class ServiceController(BaseController):
    def __before__(self):
        super(ServiceController, self).__before__()
        c.app_list = [['','']]
        self.site = Site.get(-1,c.site_id)
        
        self.other = []
        if not hasattr(self,'filters'):
            self.filters = FilterList()
            request.environ['filters'] = self.filters
        self.filters.context = 'service'
        if self.filters.current() == None:
            self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
        if 'filterstatus' in request.params and \
            request.params['filterstatus'] == 'refresh':
            self.filters.set(ServiceFilter(name='owner',clauses={'owner':'all'}))
        c.filters = self.filters
    
    def _filter(self,offset=0,limit=20):
        f = self.filters.current()
        f.start()
        qry = f.finish(offset=offset,limit=limit)
        log.info('offset=%s, limit=%s, f.count=%s' % (offset,limit,f.count))
        
        if offset != 0 and f.count > 0 and f.count >= f.offset:
            c.item = qry[0]
        elif offset == 0 and f.count > 0: #viewlist existing
            c.services = qry
        elif f.count <= f.offset:
            return self.index()
        else:
            c.services = qry
        self.filters.save()
        return self._view()
    
    def _view(self):
        if c.services:
            c.services = dspager(c.services,20)
        
        return render('/service/service.html')
    
    #@requires_role('admin')
    def index(self):
        c.services = Service.all().filter_by(list_public=1)
        c.recent = Service.recent_updates(5)
        return render('/service/service.html')
    
    def view(self,id=0):
        c.item = Service.get(-1,id)
        return render('/service/service.html')
    
    def appview(self,id=0):
        c.item = App.get(-1,id)
        if not (c.item.list_public or (c.user and c.user.site_id == c.item.site_id)):
            c.item = None
        return render('/service/app.html')
    
    @requires_role('admin')
    def raiseerror(self,id=0):
        raise Exception('for testing')
    
    def owner(self,id=0):
        filter = id
        log.info('other=%s,filter=%s' % (self.other,filter))
        if filter in ['me','mine'] and self.other == []: # new
            self.filters.set(ServiceFilter(name='owner'))
            self.filters.current().clauses['owner'] = 'mine' # filter value
        elif filter == 'all':
            self.filters.set(ServiceFilter(name='owner'))
            self.filters.current().clauses['owner'] = 'all' # filter value
        return self._filter(offset=0,limit=20)
    
    @requires_role('admin')
    def apps(self,id=0):
        c.apps = App.by_site(c.site_id)
        return render('/service/app.html')
    
    @requires_role('admin')
    def appeditform(self,id=0):
        if id == 0 or id == None or id == '0':
            c.item = App()
        else:
            c.item = App.get(-1,id)
            if not (c.item.list_public or (c.user and c.user.site_id == c.item.site_id)):
                c.item = None
        return render('/service/app_edit.html')
    
    @requires_role('admin')
    def appedit(self,id=0):
        #log.info('what the heck, in edit %s' % id)
        id = request.POST['app_id']
        site = Site.get(-1,c.site_id)
        if id == 0 or id == None or id == '0':
            app = App()
            app.site_id = site.id
            app.owner_id = c.user.id
            log.info('hm, id == 0')
        else:
            app = App.get(site.id,id)
        
        app.slug = sanitize(request.POST['real_permalink2'])
        app.name = sanitize(request.POST['app_name'])
        app.authn = sanitize(request.POST['authn'])
        app.description = sanitize(request.POST['description'])
        app.base_url = sanitize(request.POST['base_url'])
        app.save()
        return app.id
    
    @validate(schema=ServiceValidation(), form='edit')
    def service_edit_post(self,id=0):
        
        if self.form_result['service_id'] == "0":
            item = Service(site_id=c.site_id, name=sanitize(self.form_result['name']))
            item.owner_id = c.user.id
        elif c.user.issysadmin:
            item = Service.get(-1,int(self.form_result['service_id']))
        else:
            item = Service.get(c.site_id,int(self.form_result['service_id']))
        
        item.name = sanitize(self.form_result['name'])
        item.key = sanitize(self.form_result['real_permalink'])
        item.description = sanitize(self.form_result['description'])
        item.format = sanitize(self.form_result['format'])
        item.method_url = sanitize(self.form_result['method_url'])
        if 'list_public' in self.form_result:
            item.list_public = int(self.form_result['list_public'])
        if 'app' in self.form_result:
            item.app_id = self.form_result['app']
        if item.id > 0:
            item.save()
        else:
            item.save()
            h.add_alert('Service Added')
        return self.index()
    
    @requires_role('admin')
    @rest.dispatch_on(POST="service_edit_post")
    def edit(self,id=0):
        log.info('what the heck, in service edit %s' % id)
        site = Site.get(-1,c.site_id)
        c.app_list = [['%s' % app.id,app.name] for app in site.apps]
        if id == 0 or id == None:
            c.item = App()
            c.service = Service()
            log.info('hm, id == 0')
        else:
            c.service = Service.get(c.user.site_id,id)
            if not c.service and not c.user.issysadmin:
                h.add_alert('No permission to this service')
                return self.index()
            elif c.user.issysadmin:
                c.service = Service.get(-1,id)
            c.item = c.service.app
        return render('/service/service_edit.html')