public static function register_object($object_type = NULL, $ua_parent_object = NULL)
 {
     $error = new argent_error();
     if (!argent_uauth::has_permission(AG_PERMISSION_CREATE, $ua_parent_object)) {
         $error->add('1024', 'Access denied', $object_id, 'argent_meta');
     }
     if (!self::valid_object_type($object_type)) {
         $error->add('1036', 'Unregistered object type', $object_type, 'argent_meta');
     }
     if ($error->has_errors()) {
         return $error;
     }
     $db = new argent_database();
     $object_id = argent_identifier::object_id($object_type);
     $sql = "\r\n                        INSERT INTO\r\n                            `ua_object_register`\r\n                        (\r\n                            `object_id`,\r\n                            `ua_parent_object`\r\n                        )\r\n                        VALUES(\r\n                            '{$db->escape_value($object_id)}',\r\n                            '{$db->escape_value($ua_parent_object)}'\r\n                        )\r\n                        ";
     $res = $db->query($sql);
     if (!$res) {
         $error->add('1000', 'Database Error', $sql, 'argent_meta');
         return $error;
     }
     $permissions = array('create' => 1, 'read' => 1, 'update' => 1, 'delete' => 1);
     $perms = argent_uauth::set_permissions($permissions, $object_id, argent_uauth::session_user());
     if (argent_error::check($perms)) {
         return $perms;
     }
     return $object_id;
 }