Skip to content
This repository has been archived by the owner on Apr 5, 2022. It is now read-only.

Commit

Permalink
Protocol options (4.0.20)
Browse files Browse the repository at this point in the history
Doug Anarino committed Sep 11, 2016
1 parent 0331429 commit 7c28928
Showing 94 changed files with 4,958 additions and 1,219 deletions.
42 changes: 29 additions & 13 deletions app/php/include/authutils.php
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
<?php /*
This file provides hooks for the authentication mechanisms and is included by most
scripts. It uses PHP's built in HTTP authentication but allows ANY username/password
combination to be used. The auth_challenge() function is only called from the index page.
The auth_userid() function is called whenever paths are built to the user's content
(uploads, rendered videos, XML data files). The auth_data() function is called from
when callbacks are being generated for inclusion in the job XML for the transcoder.
This file provides hooks for the authentication mechanisms and is included by
most scripts. By default, it uses PHP's built in HTTP authentication but allows
ANY username/password combination to be used. The auth_challenge() function is
only called from endpoints that require a user id. The auth_userid() function is
called whenever paths are built to the user's content (uploads, rendered videos,
XML data files). The auth_data() function is called from when callbacks are
being generated for inclusion in the job XML for the transcoder.
*/

include_once(dirname(__FILE__) . '/loadutils.php');
load_utils('config');

if (! function_exists('auth_challenge')) {
function auth_challenge($config) {
$realm = (empty($config['authentication_prompt']) ? 'Any username and password will work for this example!' : $config['authentication_prompt']);
$realm = (empty($config['authentication_prompt']) ? 'Any username and password will work for this example!' : $config['authentication_prompt']);
// in this example we use HTTP authentication
// if using sessions, you'll probably want to redirect to login page instead
header('WWW-Authenticate: Basic realm="' . $realm . '"');
@@ -25,14 +26,14 @@ function auth_ok($config = array()) {
$ok = FALSE;
// check for configuration problem
if (! $config) $config = config_get();
if (! config_error($config)) {
if (! config_error($config)) {
// check for aleady signed in
$uid = auth_userid();
$ok = !! $uid;
if ($ok) { // we found a username, check for password
switch($config['authentication']) {
case '': break; // any password is okay, just look for user
default: {
default: {
$ok = FALSE;
if (is_string($config['authentication'])) {
$password = http_get_contents($config['authentication']);
@@ -57,17 +58,32 @@ function auth_userid() {
function auth_ok_callback($config = array()) {
$ok = FALSE;
if (! $config) $config = config_get();
if (! config_error($config)) $ok = auth_ok($config);
if (! config_error($config)) {
if ('session' == $config['authentication_callback_mode']){
// will generate E_NOTICE if session was already started
session_start(['use_only_cookies' => 0, 'read_and_close' => 1]);
}
$ok = auth_ok($config);
}
return $ok;
}
}
if (! function_exists('auth_data')) {
function auth_data($transfer = array(), $config = array()) {
if (! $config) $config = config_get();
if (! config_error($config)) {
// use HTTP authentication - eg. http://User:Pass@www.example.com/path/
$transfer['user'] = empty($_SERVER['PHP_AUTH_USER']) ? '' : $_SERVER['PHP_AUTH_USER'];
$transfer['pass'] = empty($_SERVER['PHP_AUTH_PW']) ? '' : $_SERVER['PHP_AUTH_PW'];
switch($config['authentication_callback_mode']){
case 'http': {
// use HTTP authentication - eg. http://User:Pass@www.example.com/path/
$transfer['user'] = empty($_SERVER['PHP_AUTH_USER']) ? '' : $_SERVER['PHP_AUTH_USER'];
$transfer['pass'] = empty($_SERVER['PHP_AUTH_PW']) ? '' : $_SERVER['PHP_AUTH_PW'];
}
case 'session': {
// use session based authentication - eg. http://www.example.com/path/?PHPSESSID=abcdefghijklmnop
if (empty($transfer['parameters'])) $transfer['parameters'] = [];
$transfer['parameters'][session_name()] = session_id();
}
}
}
return $transfer;
}
16 changes: 12 additions & 4 deletions app/php/include/configutils.php
Original file line number Diff line number Diff line change
@@ -3,12 +3,14 @@
// A convenient place to suppress errors and avoid corrupt json responses
ini_set('display_errors', 0);


include_once(dirname(__FILE__) . '/loadutils.php');
load_utils('service','http','log','path');

if (! function_exists('config_defaults')) {
function config_defaults($config = array()) {
$config['authentication'] = (empty($config['authentication']) ? '' : $config['authentication']);
$config['authentication_callback_mode'] = (empty($config['authentication_callback_mode']) ? 'http' : $config['authentication_callback_mode']);
$config['aws_access_key_id'] = (empty($config['aws_access_key_id']) ? '' : $config['aws_access_key_id']);
$config['aws_secret_access_key'] = (empty($config['aws_secret_access_key']) ? '' : $config['aws_secret_access_key']);
$config['export_audio_codec_audio'] = (empty($config['export_audio_codec_audio']) ? 'libmp3lame' : $config['export_audio_codec_audio']);
@@ -35,11 +37,13 @@ function config_defaults($config = array()) {
$config['import_image_quality'] = (empty($config['import_image_quality']) ? '1' : $config['import_image_quality']);
$config['import_original_basename'] = (empty($config['import_original_basename']) ? 'original' : $config['import_original_basename']);
$config['import_waveform_backcolor'] = (empty($config['import_waveform_backcolor']) ? 'FFFFFF' : $config['import_waveform_backcolor']);
$config['import_waveform_basename'] = (empty($config['import_waveform_basename']) ? 'waveform' : $config['import_waveform_basename']);
$config['import_waveform_basename'] = (empty($config['import_waveform_basename']) ? 'waveform' : $config['import_waveform_basename']);
$config['import_waveform_dimensions'] = (empty($config['import_waveform_dimensions']) ? '8000x32' : $config['import_waveform_dimensions']);
$config['import_waveform_extension'] = (empty($config['import_waveform_extension']) ? 'png' : $config['import_waveform_extension']);
$config['import_waveform_forecolor'] = (empty($config['import_waveform_forecolor']) ? '000000' : $config['import_waveform_forecolor']);
$config['module_host'] = (empty($config['module_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['module_host']));
$config['module_directory'] = (empty($config['module_directory']) ? substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))) : $config['module_directory']);
$config['module_protocol'] = (empty($config['module_protocol']) ? 'http' : $config['module_protocol']);
$config['user_media_host'] = (empty($config['user_media_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['user_media_host']));
$config['callback_host'] = (empty($config['callback_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['callback_host']));
$config['log_request'] = (empty($config['log_request']) ? '' : $config['log_request']);
@@ -52,11 +56,12 @@ function config_defaults($config = array()) {
$config['log_file'] = (empty($config['log_file']) ? '' : $config['log_file']);
$config['callback_directory'] = (empty($config['callback_directory']) ? substr(dirname(dirname(__FILE__)), strlen(path_add_slash_end($config['web_root_directory']))) : $config['callback_directory']);
$config['install_directory'] = (empty($config['install_directory']) ? substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))) : $config['install_directory']);
$config['callback_protocol'] = (empty($config['callback_protocol']) ? 'http' : $config['callback_protocol']);
$config['cgi_directory'] = (empty($config['cgi_directory']) ? substr(dirname(dirname(__FILE__)), strlen(path_add_slash_end(path_concat($config['web_root_directory'], $config['install_directory'])))) : $config['cgi_directory']);
$config['user_media_directory'] = (isset($config['user_media_directory']) ? $config['user_media_directory'] : path_concat(substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end(path_concat($config['web_root_directory'], $config['install_directory'])))), 'user'));
$config['user_media_url'] = (isset($config['user_media_url']) ? $config['user_media_url'] : $config['user_media_directory']);
$config['user_media_protocol'] = (isset($config['user_media_protocol']) ? 'http' : $config['user_media_protocol']);
$config['user_data_directory'] = (isset($config['user_data_directory']) ? $config['user_data_directory'] : path_concat(substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))), 'user'));
$config['module_directory'] = (empty($config['module_directory']) ? substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))) : $config['module_directory']);
$config['s3_bucket'] = (empty($config['s3_bucket']) ? '' : $config['s3_bucket']);
$config['s3_region'] = (empty($config['s3_region']) ? '' : $config['s3_region']);
$config['sqs_queue_url'] = (empty($config['sqs_queue_url']) ? '' : $config['sqs_queue_url']);
@@ -87,8 +92,11 @@ function config_error($config) {
}
if (! function_exists('config_get')) {
function config_get() {
$ini_path = 'moviemasher.ini';
$config = @parse_ini_file($ini_path);


// this constant can be defined before calling this method to easily override
if (! defined('MM_INI_FILE')) define('MM_INI_FILE', 'moviemasher.ini');
$config = @parse_ini_file(MM_INI_FILE);
if (! $config) $config = array();
else $config = config_defaults($config);
return $config;
1 change: 1 addition & 0 deletions app/php/include/httputils.php
Original file line number Diff line number Diff line change
@@ -24,6 +24,7 @@ function http_execute_array($ch) {
if (! function_exists('http_get_contents')) {
function http_get_contents($url) {
if (http_is_url($url)) {
echo $url;
$result = http_retrieve($url);
if (! $result['error']) $url = $result['result'];
else $url = '';
8 changes: 4 additions & 4 deletions app/php/include/serviceutils.php
Original file line number Diff line number Diff line change
@@ -255,7 +255,7 @@ function service_export_module_source($config = array()){
function __export_progress_callback($payload, $config){
return auth_data(array(
'host' => $config['callback_host'],
'type' => 'http',
'type' => $config['callback_protocol'],
'trigger' => 'progress',
'path' => path_concat($config['callback_directory'], 'export_progress.php'),
'data' => $payload,
@@ -264,7 +264,7 @@ function __export_progress_callback($payload, $config){
function __export_complete_callback($payload, $config){
return auth_data(array(
'host' => $config['callback_host'],
'type' => 'http',
'type' => $config['callback_protocol'],
'trigger' => 'complete',
'path' => path_concat($config['callback_directory'], 'export_complete.php'),
'data' => $payload,
@@ -273,7 +273,7 @@ function __export_complete_callback($payload, $config){
function __import_progress_callback($payload, $config){
return auth_data(array(
'host' => $config['callback_host'],
'type' => 'http',
'type' => $config['callback_protocol'],
'trigger' => 'progress',
'path' => path_concat($config['callback_directory'], 'import_progress.php'),
'data' => $payload,
@@ -282,7 +282,7 @@ function __import_progress_callback($payload, $config){
function __import_complete_callback($payload, $config){
return auth_data(array(
'host' => $config['callback_host'],
'type' => 'http',
'type' => $config['callback_protocol'],
'trigger' => 'complete',
'path' => path_concat($config['callback_directory'], 'import_complete.php'),
'data' => $payload,
9 changes: 5 additions & 4 deletions app/php/service/s3.php
Original file line number Diff line number Diff line change
@@ -9,14 +9,15 @@ function s3_file_source($input, $config){
return array(
'name' => $config['import_original_basename'],
'extension' => $input['extension'],
'type' => 'http',
'type' => $config['user_media_protocol'],
'host' => $config['user_media_host'],
'path' => path_concat(path_concat($config['user_media_url'], $input['uid']), $input['id']),
);
}
function s3_file_import_url($import, $config){
$uid = (empty($import['uid']) ? '' : $import['uid']);
return path_concat('http://' . $config['user_media_host'], path_concat($config['user_media_url'], $uid));

return path_concat($config['user_media_protocol'] . '://' . $config['user_media_host'], path_concat($config['user_media_url'], $uid));
}
function s3_file_export_url($import, $config){
return s3_file_import_url($import, $config);
@@ -43,10 +44,10 @@ function s3_file_config_error($config = array()){
}
function s3_file_export_module_source($config){
return array(
'type' => $config['module_protocol'],
'host' => $config['module_host'],
'directory' => $config['module_directory'],
'method' => 'get',
'type' => 'http'
'method' => 'get'
);
}
function s3_file_destination($output, $config, $prefix = 's3'){
9 changes: 9 additions & 0 deletions app/views/inspector/speed.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<div class='amm-inspector-row'>
<input type="range"
step="0.1" min="0.1" max="10"
ng-change="$amm.player.change('speed')"
ng-model="$amm.player.selectedClip.speed"
/>
<label>Speed:</label>
{{$amm.player.selectedClip.speed}}
</div>
3 changes: 2 additions & 1 deletion app/views/inspector/video.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<div ng-include="'views/inspector/label.html'"></div>
<div ng-include="'views/inspector/trim.html'"></div>
<div ng-include="'views/inspector/gain.html'"></div>
<!-- <div ng-include="'views/inspector/speed.html'"></div>-->
<div ng-include="'views/inspector/trim.html'"></div>
<div ng-include="'views/inspector/visual.html'"></div>

2 changes: 2 additions & 0 deletions app/views/panels.html
Original file line number Diff line number Diff line change
@@ -55,7 +55,9 @@
<option value='image'>Images</option>
</optgroup>
<optgroup ng-if="amm_resources.module.search" label="Modules">
<!--
<option value='transition'>Transitions</option>
-->
<option value='effect'>Effects</option>
<option value='theme'>Themes</option>
</optgroup>
4 changes: 2 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
"homepage": "http://www.moviemasher.com",
"authors": [ {"name": "Movie Masher", "email": "support@moviemasher.com" }],
"description": "Example deployment of moviemasher.js and moviemasher.rb utilizing AngularJS, Bootstrap and PHP",
"version": "1.0.15",
"version": "1.0.16",
"ignore": [
"**/.*",
"node_modules",
@@ -20,7 +20,7 @@
"bootstrap": "~3.3.6",
"angular-bootstrap": "~1.3.3",
"angular-bootstrap-colorpicker": "~3.0.25",
"moviemasher.js": "4.0.19"
"moviemasher.js": "4.0.20"
},
"devDependencies": {
"grunt": "^0.4.5",
10 changes: 5 additions & 5 deletions bower_components/angular-animate/.bower.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"name": "angular-animate",
"version": "1.5.6",
"version": "1.5.8",
"license": "MIT",
"main": "./angular-animate.js",
"ignore": [],
"dependencies": {
"angular": "1.5.6"
"angular": "1.5.8"
},
"homepage": "https://github.com/angular/bower-angular-animate",
"_release": "1.5.6",
"_release": "1.5.8",
"_resolution": {
"type": "version",
"tag": "v1.5.6",
"commit": "99ab9c6c6888231eb79a7f6095c370fda1bf3345"
"tag": "v1.5.8",
"commit": "688b68844cf95420e1793327f69d0c25589c23d1"
},
"_source": "https://github.com/angular/bower-angular-animate.git",
"_target": "~1.5.5",
Loading

0 comments on commit 7c28928

Please sign in to comment.