Ejemplo n.º 1
0
 if ($data['owner'] == $session->user && $certificate['owner'] == $session->user) {
     // create the channel
     $channel = new Channel($form->inputId);
     $channel->setCertificate($form->inputCertificate);
     $channel->setApplication($form->inputApplicationId);
     $channel->setLabel($form->inputLabel);
     $channel->setDescription($form->inputDescription);
     $channel->setDefaultPermissions((int) $form->inputRead | (int) $form->inputWrite | (int) $form->inputDelete);
     // channel owner gets all permissions by default
     $certificate = $channel->generate_certificate(RenegadeConstants::kPermissionRead | RenegadeConstants::kPermissionWrite | RenegadeConstants::kPermissionDelete);
     $metadata = $channel->generate_metadata();
     $subscription = new Subscription();
     $subscription->setCertificate($certificate['key']);
     $subscription->setApplication($metadata['application']);
     $subscription->setChannel($metadata['_id']);
     $subscription->setMaster(true);
     // place us in the application db context
     $options = array('default' => Renegade::databaseForId($form->inputApplicationId));
     $channels = Renegade::database(RenegadeConstants::kDatabaseMongoDB, RenegadeConstants::kDatabaseChannels, $options);
     $subscriptions = Renegade::database(RenegadeConstants::kDatabaseMongoDB, RenegadeConstants::kDatabaseSubscriptions, $options);
     $redis->set($certificate['key'], $certificate['value']);
     $channels->insert($metadata);
     $subscriptions->insert($subscription->toArray());
 } else {
     // error, something is potentially wrong, either from the user or the system
     // lets assume the system, it's easy to throw guilt at the user =)
     echo 'Error';
     exit;
     header('Location: /applications');
     exit;
 }
Ejemplo n.º 2
0
                 */
                 // we are giving the fully qualified channel id here
                 // so we will not need to set the application, it will be done for us
                 $channel = new Channel($remote_channel['_id']);
                 $channel->setCertificate($application['certificate']);
                 $channel->setLabel($remote_channel['label']);
                 $channel->setDescription($remote_channel['description']);
                 $channel->setDefaultPermissions($remote_channel['defaultPermissions']);
                 $certificate = $channel->generate_certificate($remote_channel['defaultPermissions']);
                 $metadata = $channel->generate_metadata();
                 $metadata['requests'] = $remote_channel['requests'];
                 $subscription = new Subscription();
                 $subscription->setCertificate($certificate['key']);
                 $subscription->setApplication($form->inputApplicationId);
                 $subscription->setChannel($metadata['_id']);
                 $subscription->setMaster(false);
                 $db_remote_options = array('default' => Renegade::databaseForId($remote_application));
                 $db_remote_subscriptions = Renegade::database(RenegadeConstants::kDatabaseMongoDB, RenegadeConstants::kDatabaseSubscriptions, $db_remote_options);
                 $certificates = Renegade::database(RenegadeConstants::kDatabaseRedis, RenegadeConstants::kDatabaseCertificates);
                 $db_remote_subscriptions->insert($subscription->toArray());
                 $db_channels->insert($metadata);
                 $certificates->set($certificate['key'], $certificate['value']);
                 // All Done
                 Renegade::redirect('/applications/' . $form->inputApplicationId . '/channels');
             }
         } else {
             echo 'channel not found';
             //Renegade::redirect('/applications/'.$form->inputApplicationId.'./channels');
         }
     }
 }