Exemplo n.º 1
0
 // Check that this action request is not a CSRF hacked request:
 $Session->assert_received_crumb('invitation');
 // Check permission:
 $current_User->check_perm('users', 'edit', true);
 // load data from request
 if ($edited_Invitation->load_from_Request()) {
     // We could load data from form without errors:
     // While inserting into DB, ID property of Invitation object will be set to autogenerated ID
     // So far as we set ID manualy, we need to preserve this value
     // When assignment of wrong value will be fixed, we can skip this
     $entered_invitation_id = $edited_Invitation->ID;
     // Insert in DB:
     $DB->begin();
     // because of manual assigning ID,
     // member function Invitation::dbexists() is overloaded for proper functionality
     $duplicated_invitation_ID = $edited_Invitation->dbexists('ivc_code', $edited_Invitation->get('code'));
     if ($duplicated_invitation_ID) {
         // We have a duplicate entry:
         param_error('ivc_ID', sprintf(T_('This invitation code already exists. Do you want to <a %s>edit the existing invitation code</a>?'), 'href="?ctrl=invitations&amp;action=edit&amp;ivc_ID=' . $duplicated_invitation_ID . '"'));
     } else {
         $edited_Invitation->dbinsert();
         $Messages->add(T_('New invitation code created.'), 'success');
     }
     $DB->commit();
     if (empty($duplicated_invitation_ID)) {
         // What next?
         switch ($action) {
             case 'create_copy':
                 // Redirect so that a reload doesn't write to the DB twice:
                 header_redirect('?ctrl=invitations&action=new&ivc_ID=' . $edited_Invitation->ID, 303);
                 // Will EXIT