DataObjects/Core_setting.php
[Pman.Core] / DataObjects / Core_setting.php
1 <?php
2
3 class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php';
4
5 class Pman_Core_DataObjects_Core_setting extends DB_DataObject
6 {
7     public $__table = 'core_setting';
8     
9     function initKeys($dir)
10     {
11         if(!file_exists($dir)) {
12             mkdir($dir);
13         }
14         
15         //return when keys exist
16         if(
17             file_exists("{$dir}/pub.key") ||
18             file_exists("{$dir}/pri.key")
19         ){
20             return;
21         }
22         
23         $ssl = openssl_pkey_new(array(
24             "digest_alg" => "sha512",  
25             "private_key_bits" => 1024, //returns cipher in 128 char
26             "private_key_type" => OPENSSL_KEYTYPE_RSA
27         ));
28         
29         openssl_pkey_export($ssl, $pri_key);
30         $pub_key = openssl_pkey_get_details($ssl);
31         $pub_key = $pub_key["key"];
32         
33         file_put_contents("{$dir}/pub.key",$pub_key);
34         file_put_contents("{$dir}/pri.key",$pri_key);
35     }
36     
37     function getSetting($m,$n)
38     {
39         $s = DB_DataObject::factory('core_setting');
40         $s->setFrom(array(
41             'module' => $q['module'],
42             'name' => $q['name']
43         ));
44         if($s->find(true)) {
45             return $s;
46         }
47         return false;
48     }
49     
50     function beforeInsert($q, $roo)
51     {
52         return;
53     }
54     
55     function initSetting($a, $dir)
56     {
57         if(empty($a) || empty($dir)) {
58             return;
59         }
60         
61         //check setting exist
62         $c = $this->getSetting($a['module'], $a['name']);
63         if($c) {
64             return;
65         }
66         
67         $this->initKeys($dir);
68         
69         $val = $a['val'];
70         if(!isset($a['is_encrypt']) || $a['is_encrypt'] == 1) {
71             $val = encrypt($val);
72         }
73         
74         return;
75     }
76     
77     function encrypt($v) {
78         
79     }
80     
81     
82 }