Ejemplo n.º 1
0
 $certificate = json_decode($redis->get($form->inputCertificate), true);
 $data = $mongodb->findOne(array('_id' => $form->inputApplicationId));
 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');
Ejemplo n.º 2
0
         	We need to add the channel to the local application's channels
         	Send an e-mail requesting extended permissions here if requested
         */
         // 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');
 }