/**
  * Define a new User Right
  * 
  * @param string $right
  */
 public static function define_right($right)
 {
     $error = new argent_error();
     $db = new argent_database();
     if (!is_string($right)) {
         $error->add('1050', 'Invalid data type: expecting STRING', $right, 'argent_uauth');
     }
     if (self::right_exists($right)) {
         $error->add('1043', 'Right exists', $right, 'argent_uauth');
     }
     if ($error->has_errors()) {
         return $error;
     }
     $meta = array('object_id' => argent_identifier::object_id('URT'));
     $meta = argent_meta::add_meta($meta);
     $sql = "\r\n                        INSERT INTO\r\n                            `ua_rights`\r\n                        VALUES\r\n                            (\r\n                                '{$db->escape($meta['meta_guid'])}',\r\n                                '{$db->escape($meta['object_id'])}',\r\n                                '{$db->escape($right)}',\r\n                                '{$db->escape($meta['meta_timestamp'])}',\r\n                                '{$db->escape($meta['meta_user'])}',\r\n                                '{$db->escape($meta['meta_ip'])}'\r\n                            )\r\n                        ";
     $db->query($sql);
     return true;
 }
 public static function create_object($object_type = null, $ua_parent_object = null)
 {
     $error = new argent_error();
     if (!self::valid_object_type($object_type)) {
         $error->add('1036', 'Unregistered object type', $object_type, 'argent_meta');
     }
     if (!self::object_registered($ua_parent_object)) {
         $error->add('1038', 'Object does not exist', $ua_parent_object, 'argent_meta');
     }
     $object = argent_meta::register_object($object_type, $ua_parent_object);
     if (argent_error::check($object)) {
         return $object;
     }
     $record = array('object_id' => $object);
     $record = argent_meta::add_meta($record);
     $table = self::type_info($object_type);
     argent_meta::save_record($record, $table['table']);
     if ($error->has_errors()) {
         return $error;
     }
     return $object;
 }