コード例 #1
0
  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
コード例 #2
0
 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' )
コード例 #3
0
 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 )
コード例 #4
0
ファイル: server.py プロジェクト: politeauthority/garden_pi
 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 )
コード例 #5
0
 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  )
コード例 #6
0
 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  )
コード例 #7
0
 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'
コード例 #8
0
 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  )
コード例 #9
0
 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  )
コード例 #10
0
 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'] )
コード例 #11
0
 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
コード例 #12
0
 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
コード例 #13
0
  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
コード例 #14
0
 def __init__( self ):
     Settings     = MVC.loadHelper('Settings')
     self.apikey  = Settings.get_option( 'weatherunderground-apikey' )
     self.zipcode = Settings.get_option( 'weatherunderground-zipcode' )
コード例 #15
0
ファイル: main.py プロジェクト: politeauthority/garden_pi
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'
コード例 #16
0
#!/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:
コード例 #17
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():
コード例 #18
0
"""
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(), 
コード例 #19
0
 def delete( self, meta_id ):
   Settings = MVC.loadHelper( 'Settings')
   Settings.delete( meta_id )
   raise cherrypy.HTTPRedirect( '/admin/settings' )
コード例 #20
0
ファイル: server.py プロジェクト: politeauthority/garden_pi
 def settings_update( self, *args, **kwargs ):
   if kwargs:
     Settings = MVC.loadHelper( 'Settings' )
     Settings.bulk_update( kwargs )
   cherrypy.InternalRedirect('/')
コード例 #21
0
 def index( self ):
   Settings = MVC.loadHelper('Settings')
   data = { 'options' : Settings.get_options() }
   return self.Renderer.make( 'admin/settings/index.html', data )
コード例 #22
0
 def acl( self ):
   ACL = MVC.loadHelper('ACL')
   roles = ACL.getAllRoles()
   data = { 'roles': roles }
   return self.Renderer.make( 'admin/user/acl.html', data )
コード例 #23
0
  `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
コード例 #24
0
 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/' )
コード例 #25
0
 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 )
コード例 #26
0
  def __get_perms( self, user_id ):
    ACL = MVC.loadHelper( 'ACL', user_id )
    return ACL

# End File: models/ModelUser.py