Exemple #1
0
 /**
  * Global setter method
  *
  * @param string $name  name of the property we want to assign a value to
  * @param object $value a relevant value for the property
  *
  * @return void
  */
 public function __set($name, $value)
 {
     if (in_array($name, $this->pagination_fields)) {
         parent::__set($name, $value);
     } else {
         Analog::log('[MembersList] Setting property `' . $name . '`', Analog::DEBUG);
         switch ($name) {
             case 'selected':
             case 'unreachable':
                 if (is_array($value)) {
                     $name = '_' . $name;
                     $this->{$name} = $value;
                 } else {
                     if ($value !== null) {
                         Analog::log('[MembersList] Value for property `' . $name . '` should be an array (' . gettype($value) . ' given)', Analog::WARNING);
                     }
                 }
                 break;
             case 'filter_str':
                 $name = '_' . $name;
                 $this->{$name} = $value;
                 break;
             case 'field_filter':
             case 'membership_filter':
             case 'account_status_filter':
                 if (is_numeric($value)) {
                     $name = '_' . $name;
                     $this->{$name} = $value;
                 } else {
                     if ($value !== null) {
                         Analog::log('[MembersList] Value for property `' . $name . '` should be an integer (' . gettype($value) . ' given)', Analog::WARNING);
                     }
                 }
                 break;
             case 'email_filter':
                 switch ($value) {
                     case Members::FILTER_DC_EMAIL:
                     case Members::FILTER_W_EMAIL:
                     case Members::FILTER_WO_EMAIL:
                         $this->_email_filter = $value;
                         break;
                     default:
                         Analog::log('[MembersList] Value for email filter should be either ' . Members::FILTER_DC_EMAIL . ', ' . Members::FILTER_W_EMAIL . ' or ' . Members::FILTER_WO_EMAIL . ' (' . $value . ' given)', Analog::WARNING);
                         break;
                 }
                 break;
             case 'group_filter':
                 if (is_numeric($value) && $value > 0) {
                     //check group existence
                     $g = new Group();
                     $res = $g->load($value);
                     if ($res === true) {
                         $this->_group_filter = $value;
                     } else {
                         Analog::log('Group #' . $value . ' does not exists!', Analog::WARNING);
                     }
                 } else {
                     if ($value !== null && $value !== '0') {
                         Analog::log('[MembersList] Value for group filter should be an ' . 'integer (' . gettype($value) . ' given)', Analog::WARNING);
                     }
                 }
                 break;
             case 'query':
                 $this->{$name} = $value;
                 break;
             default:
                 Analog::log('[MembersList] Unable to set proprety `' . $name . '`', Analog::WARNING);
                 break;
         }
     }
 }
if (!$login->isLogged()) {
    header('location: index.php');
    die;
}
if (!$login->isAdmin() && !$login->isStaff() && !$login->isGroupManager()) {
    header('location: voir_adherent.php');
    die;
}
$groups = new Groups();
$group = new Group();
$error_detected = array();
$success_detected = array();
$id = get_numeric_form_value(Group::PK, null);
if ($id !== null) {
    if ($login->isGroupManager($id)) {
        $group->load($id);
    } else {
        Analog::log('Trying to display group ' . $id . ' without appropriate permissions', Analog::INFO);
        die;
    }
}
if (isset($_POST['pdf'])) {
    $qstring = 'groups_list.php';
    if (isset($_POST['id_group'])) {
        $qstring .= '?gid=' . $_POST['id_group'];
    }
    header('location: ' . $qstring);
    die;
}
if (isset($_POST['delete']) || isset($_POST['delete_cascade'])) {
    //delete groups