示例#1
0
 /**
  * Save role
  *
  * @param \Pop\Form\Form $form
  * @return void
  */
 public function save(\Pop\Form\Form $form)
 {
     $fields = $form->getFields();
     $role = new Table\UserRoles(array('type_id' => $fields['type_id'], 'name' => $fields['name']));
     $role->save();
     $this->data['id'] = $role->id;
     // Add new permissions if any
     $perms = array();
     foreach ($_POST as $key => $value) {
         if (strpos($key, 'resource_new_') !== false) {
             $id = substr($key, strrpos($key, '_') + 1);
             if ($value != '0') {
                 $perm = $_POST['permission_new_' . $id] != '0' ? $_POST['permission_new_' . $id] : '';
                 if ($perm != '') {
                     $perm .= $_POST['type_new_' . $id] != '0' ? '_' . $_POST['type_new_' . $id] : '';
                 }
                 $perms[] = array('resource' => $value, 'permission' => $perm, 'allow' => (int) $_POST['allow_new_' . $id]);
             }
         }
     }
     $role->permissions = serialize($perms);
     $role->update();
     FieldValue::save($fields, $role->id);
 }