def acl_perm_update( self, **kwargs ): if kwargs: ACL = MVC.loadHelper( 'ACL' ) if kwargs['perm_id'] == '': Misc = MVC.loadHelper( 'Misc' ) perm_id = ACL.createPerm( Misc.slug( kwargs['perm_name'] ), kwargs['perm_name'] )[0] if kwargs['role_id'] != '': ACL.createRolePerm( kwargs['role_id'], perm_id ) raise cherrypy.HTTPRedirect( '/admin/user_acl/' ) # End File: controllers/admin/ControllerAdminUser.py
def update( self, **kwargs ): Settings = MVC.loadHelper( 'Settings') if kwargs['meta_id'] == '': Settings.create( kwargs['meta_key'], kwargs['meta_value'] ) else: Settings.update( kwargs['meta_key'], kwargs['meta_value'] ) raise cherrypy.HTTPRedirect( '/admin/settings' )
def createRolePerm( self, role_id, perm_id ): Time = MVC.loadHelper('Time') sql_check = 'SELECT * FROM `%s`.`acl_role_perms` WHERE `roleID` = "%s" AND `permID` = "%s";' % ( self.database, role_id, perm_id ) role_perm_exists = Mysql.ex( sql_check ) if len( role_perm_exists ) == 0: insert_sql = 'INSERT INTO `%s`.`acl_role_perms` ( `roleID`, `permID`, `value`, `addDate` ) VALUES( "%s", "%s", "1", "%s");' % ( self.database, role_id, perm_id, Time.now() ) Mysql.ex( insert_sql ) else: update_sql = "UPDATE `%s`.`acl_role_perms` SET `value` = 1 WHERE ID = %s; " % ( self.database, role_perm_exists[0][0] ) Mysql.ex( update_sql )
def settings( self, *boom ): UsersModel = MVC.loadModel('User') Settings = MVC.loadHelper( 'Settings' ) #Settings.update( 'url', 'http://www.somewhere.com' ) tpl_args = { 'users' : UsersModel.getAll(), 'settings' : Settings.get_options() } view = env.get_template('settings/index.html') return view.render( d = tpl_args )
def getMeta( self, people_id, metas = None ): """ @params: company_id : int() metas : list() meta keys @return: dict{ 'meta_key': 'meta_value' } """ MetaStore = MVC.loadHelper('MetaStore') return MetaStore.get( entity = 'people', entity_id = people_id )
def getMeta( self, article_id, metas = None ): """ @params: article_id : int() metas : list() meta keys @return: dict{ 'meta_key': 'meta_value' } """ MetaStore = MVC.loadHelper('MetaStore') return MetaStore.get( entity='articles', entity_id=article_id )
def info( self, user_id = False ): UserModel = MVC.loadModel( 'User' ) ACL = MVC.loadHelper( 'ACL' ) data = {} if user_id != False: data['user'] = UserModel.getById( user_id ) data['roles'] = ACL.getAllRoles() return self.Renderer.make( 'admin/user/info.html', data ) else: return 'error'
def createMeta( self, person_id, metas ): """ @params: company_id : int meta : dict { 'meta_key' : 'meta_value', 'meta_key' : 'meta_value', } """ MetaStore = MVC.loadHelper('MetaStore') MetaStore.create( 'people', person_id, metas )
def createMeta( self, article_id, metas ): """ @params: article_id : int meta : [ { "meta_key" : 'test_meta', "meta_value" : '13,254', "meta_type" : 'comma' }, ] """ MetaStore = MVC.loadHelper('MetaStore') MetaStore.create( 'articles', article_id, metas )
def perms_edit( self, **kwargs ): if kwargs: ACL = MVC.loadHelper( 'ACL' ) try: role_ids = kwargs['acl_roles[]'] except: role_ids = [] try: perm_ids = kwargs['acl_perms[]'] except: perm_ids = [] ACL.updateUserAccess( kwargs['user_id'], role_ids, perm_ids ) raise cherrypy.HTTPRedirect( '/admin/user/info/%s' % kwargs['user_id'] )
def create( self, person ): """ Stores a new person if it does not already exist. @params: person : { 'name' : 'Donald Trump', 'slug' : 'donald-trump', 'wikipedia' : 'http://en.wikipedia.org/wiki/Donald_Trump', 'meta' : { 'desc' : 'The person was founded on values.' } } @return: False or new person_id """ Misc = MVC.loadHelper( 'Misc' ) new_person = {} if 'wikipedia' not in person or person['wikipedia'] == '': return False qry = """SELECT * FROM `%s`.`people` WHERE `wikipedia` = "%s";""" % ( self.db_name, person['wikipedia'] ) exists = Mysql.ex( qry ) if len( exists ) != 0: self.updateDiff( person, exists[0] ) person_id = exists[0]['id'] else: if 'name' in person: new_person['name'] = person['name'] else: new_person['name'] = '' if 'slug' not in person: if 'name' not in person: new_person['name'] = '' else: new_person['slug'] = Misc.slug( person['name'] ) if 'wikipedia' not in person: new_person['wikipedia'] = '' else: new_person['wikipedia'] = person['wikipedia'] Mysql.insert( 'people', new_person ) person_id = self.getByWiki( new_person['wikipedia'] )['id'] if 'meta' in person: self.createMeta( person_id, person['meta'] ) return person_id
def create( self, company ): """ Stores a new company if it does not already exist. @params: company : { 'name' : 'company name', 'symbol' : 'CMPY', 'slug' : 'company-name', 'wikipedia' : 'http://en.wikipedia.org/wiki/Mondel%C4%93z_International', 'meta' : { 'desc' : 'The company was founded on values.' } } @return: False or new company_id """ new_company = {} if 'id' in company: company_rec = self.getByID( company['id'], hide = False ) self.updateDiff( company, company_rec ) if 'name' not in company or company['name'] == '': return False qry = """SELECT * FROM `%s`.`companies` WHERE `name` = "%s";""" % ( self.db_name, company['name'] ) exists = Mysql.ex( qry ) if len( exists ) != 0: company_id = self.updateDiff( company, exists[0] ) else: new_company['name'] = company['name'] if 'slug' not in company: Misc = MVC.loadHelper( 'Misc' ) new_company['slug'] = Misc.slug( company['name'] ) if 'wikipedia' not in company: new_company['wikipedia'] = '' else: new_company['wikipedia'] = company['wikipedia'] Mysql.insert( 'companies', new_company ) company_id = self.getByName( company['name'] )['id'] if 'meta' in company: self.createMeta( company_id, company['meta'] ) return company_id
def getStatus( self, device ): Formula = MVC.loadHelper('Formula') status = "" try: for i in range (0, 30): status += chr( self.bus.read_byte(device) ) time.sleep(0.05); time.sleep(0.1) except: Alert = MVC.loadModel('Alert') Alert.messaging( ['I2C Bus Issue', 'There is a problem reading the I2c bus, we cannot collect data at this time.'] ) return False sensors = [ 'water-temp', 'flow-rate' ] status = status.split('x') # water temp status[0] = Formula.celcius_to_fahrenheit( float( str( status[0][0:-1] ).replace(',','') + '.' + str( status[0][-1] ).replace(',','') ) )# Adjusted because the sensor doesnt put a decimal place in status[1] = status[1].split('.') status[1] = str( status[1][0][0:-1] + '.' + status[1][0][-1] ) return status
def __init__( self ): Settings = MVC.loadHelper('Settings') self.apikey = Settings.get_option( 'weatherunderground-apikey' ) self.zipcode = Settings.get_option( 'weatherunderground-zipcode' )
import os from datetime import date, datetime, time, timedelta sys.path.append( os.path.join(os.path.dirname(__file__), '..', '') ) from MVC import MVC MVC = MVC() # End file header import subprocess from time import strptime # Read the SHT15 temperature/humidity sensor, log it Mysql = MVC.loadDriver( 'Mysql' ) I2c = MVC.loadDriver( 'I2c' ) Settings = MVC.loadHelper( 'Settings' ) Logger = MVC.loadHelper( 'Logger' ) weatherunder = Settings.get_option( 'use-network-weatherunderground' ) use_alerts = Settings.get_option( 'use-alert' ) AlertModel = MVC.loadModel( 'Alert' ) WeatherModel = MVC.loadModel( 'Weather' ) WaterModel = MVC.loadModel( 'Water' ) Logger.write( 'Starting Regular Cron', '', 'cron' ) # Check all our sensors and run all our tasks if Settings.get_option('use-network-weatherunderground'): print 'Weather Underground'
#!/usr/bin/python """ Company Types This model controls interactions with company types """ import sys import os sys.path.append( os.path.join(os.path.dirname(__file__), '..', '') ) from MVC import MVC MVC = MVC() # End file header Mysql = MVC.loadDriver('Mysql') Debugger = MVC.loadHelper('Debug') class ModelCompanyTypes( object ): def __init__( self ): self.db_name = MVC.db['name'] def getAll( self ): qry = """SELECT * FROM `%s`.`companies_types`;""" % ( self.db_name ) c_types = Mysql.ex( qry ) return c_types def getByID( self, company_type_id ): qry = """SELECT * FROM `%s`.`companies_types` WHERE `companies_type_id` = "%s";""" % ( self.db_name, company_type_id ) c_type = Mysql.ex( qry ) if len( c_type ) == 0:
#!/usr/bin/python # Devices Model # This model will manage the garden appliances, such as lights, pumps, feeders import sys import os sys.path.append( os.path.join(os.path.dirname(__file__), '..', '') ) from MVC import MVC MVC = MVC() # End file header Mysql = MVC.loadDriver('Mysql') Settings = MVC.loadHelper('Settings') class ModelDevices( object ): def __init__( self ): self.temp_high = Settings.get_option('alert-opt-temp-high') self.temp_low = Settings.get_option('alert-opt-temp-low') def lighting( self, status ): Serial = MVC.loadDriver('Serial') if status == 'on': status = True elif status == 'off': status = False else: print 'ERROR must have on/off status' sys.exit() for light in self.get_lights():
""" import sys import os sys.path.append( '../../', ) from MVC import MVC MVC = MVC() # End file header import re import urllib import urllib2 from urlparse import urlparse from bs4 import BeautifulSoup from datetime import datetime Misc = MVC.loadHelper('Misc') TorScrape = MVC.loadDriver('TorScrape') class DriverGoogleNews( object ): def get( self, search_query ): """ Fetches RSS query from google news, follows article links and returns the result out. @params: search_query : str() @return: [ { 'headline' : str(), 'source' : str(), 'url' : str(),
def delete( self, meta_id ): Settings = MVC.loadHelper( 'Settings') Settings.delete( meta_id ) raise cherrypy.HTTPRedirect( '/admin/settings' )
def settings_update( self, *args, **kwargs ): if kwargs: Settings = MVC.loadHelper( 'Settings' ) Settings.bulk_update( kwargs ) cherrypy.InternalRedirect('/')
def index( self ): Settings = MVC.loadHelper('Settings') data = { 'options' : Settings.get_options() } return self.Renderer.make( 'admin/settings/index.html', data )
def acl( self ): ACL = MVC.loadHelper('ACL') roles = ACL.getAllRoles() data = { 'roles': roles } return self.Renderer.make( 'admin/user/acl.html', data )
`value` tinyint(1) NOT NULL DEFAULT '0', `added` datetime NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `user_id` (`user_id`,`perm_id`) ); """ createTable_user_acl_user_roles = """ CREATE TABLE `"""+ MVC.db['name'] +"""`.`acl_user_roles` ( `user_id` bigint(20) NOT NULL, `role_id` bigint(20) NOT NULL, `added` datetime NOT NULL, UNIQUE KEY `user_id` (`user_id`,`role_id`) ); """ Mysql.ex( createTable_options ) Mysql.ex( createTable_users ) Mysql.ex( createTable_usermeta ) Mysql.ex( createTable_user_acl_roles ) Mysql.ex( createTable_user_acl_permissions ) Mysql.ex( createTable_user_acl_role_perms) Mysql.ex( createTable_user_acl_user_perms ) Mysql.ex( createTable_user_acl_user_roles ) User = MVC.loadModel( 'User' ) ACL = MVC.loadHelper( 'ACL' ) User.create( 'admin', '', 'password' ) # End File install/install.py
def acl_role_update( self, **kwargs ): if kwargs: ACL = MVC.loadHelper( 'ACL' ) if kwargs['role_id'] == '': ACL.createRole( kwargs['role_name'] ) raise cherrypy.HTTPRedirect( '/admin/user_acl/' )
def addUserRole( self, user_id, role_id ): Time = MVC.loadHelper('Time') sql = 'INSERT INTO `%s`.`acl_user_roles` ( `userID`, `roleID`, `addDate` ) VALUES ( "%s", "%s", "%s")' % ( self.database, user_id, role_id, Time.now() ) Mysql.ex( sql )
def __get_perms( self, user_id ): ACL = MVC.loadHelper( 'ACL', user_id ) return ACL # End File: models/ModelUser.py