コード例 #1
0
ファイル: login.php プロジェクト: relm86/lawfirm
 public function index()
 {
     $data = array();
     $data['states'] = $this->config->item('us_states');
     $data['show_state'] = TRUE;
     //geo ip
     $loc = get_location_info();
     if (is_object($loc) && isset($loc->ip)) {
         $data['login_ip'] = $loc->ip;
         $data['city'] = $loc->city;
         if (isset($loc->region_name)) {
             $data['state'] = $loc->region_name;
         }
         if (isset($loc->region)) {
             $data['state'] = $loc->region;
         }
         if (isset($loc->country_name)) {
             $data['country'] = $loc->country_name;
         }
         if (isset($loc->country)) {
             $data['country'] = $loc->country;
         }
         $data['latitude'] = $loc->latitude;
         $data['longitude'] = $loc->longitude;
     }
     $data['show_gender'] = TRUE;
     if ($this->input->post()) {
         $this->form_validation->set_rules('name', 'Name', "trim|required");
         if ($this->input->post('business')) {
             $this->form_validation->set_rules('business', 'Business Name', "trim|required");
         }
         if ($this->input->post('password')) {
             $this->form_validation->set_rules('password', 'Password', "trim|required|callback__check_password");
         }
         $this->form_validation->set_rules('email', 'Email', "trim|required|valid_email");
         if ($this->input->post('phone')) {
             $this->form_validation->set_rules('phone', 'Phone Number', "trim|required|callback__isValidPhone");
         }
         if ($this->input->post('zipcode')) {
             $this->form_validation->set_rules('zipcode', 'Zip Code', "trim|required|callback__isValidZipCode");
         }
         if ($this->form_validation->run() == TRUE) {
             $data['login_from'] = 'form';
             $data['login_ip'] = $this->session->userdata('ip_address');
             $data['user_agent'] = $this->session->userdata('user_agent');
             $data['last_login'] = $this->session->userdata('last_login');
             $this->db->where('email_address', $this->input->post('email'));
             $query = $this->db->get('users', 1);
             $user = $query->row();
             $suspend = $query->num_rows() == 1 && $user->suspend == 1 ? true : false;
             if ($query->num_rows() < 1) {
                 $data['level'] = 1;
                 $parts = explode(" ", $this->input->post('name'));
                 $data['last_name'] = array_pop($parts);
                 $data['first_name'] = implode(" ", $parts);
                 if ($this->input->post('business')) {
                     $data['business'] = $this->input->post('business');
                 }
                 if ($this->input->post('phone_number')) {
                     $data['phone_number'] = $this->input->post('phone');
                 }
                 if ($this->input->post('zip_code')) {
                     $data['zip_code'] = $this->input->post('zipcode');
                 }
                 if ($this->input->post('state')) {
                     $data['state'] = $this->input->post('state');
                 }
                 if ($this->input->post('gender')) {
                     $data['gender'] = $this->input->post('gender');
                 }
                 $data['email_address'] = $this->input->post('email');
                 if ($this->input->post('password')) {
                     $data['password'] = md5($this->input->post('password'));
                 }
                 unset($data['states']);
                 unset($data['show_state']);
                 unset($data['show_gender']);
                 $this->db->insert('users', $data);
                 $data['id'] = $this->db->insert_id();
             } elseif ($suspend === false) {
                 //update login info
                 $row = $query->row();
                 unset($row->password);
                 $parts = explode(" ", $this->input->post('name'));
                 $data['last_name'] = array_pop($parts);
                 $data['first_name'] = implode(" ", $parts);
                 if ($this->input->post('password')) {
                     $data['password'] = md5($this->input->post('password'));
                 }
                 if ($this->input->post('business')) {
                     $data['business'] = $this->input->post('business');
                 }
                 if ($this->input->post('phone_number')) {
                     $data['phone_number'] = $this->input->post('phone');
                 }
                 if ($this->input->post('zip_code')) {
                     $data['zip_code'] = $this->input->post('zipcode');
                 }
                 if ($this->input->post('state')) {
                     $data['state'] = $this->input->post('state');
                 }
                 if ($this->input->post('gender')) {
                     $data['gender'] = $this->input->post('gender');
                 }
                 unset($data['states']);
                 unset($data['show_state']);
                 unset($data['show_gender']);
                 $this->db->where('id', $row->id);
                 $this->db->update('users', $data);
                 $data = array_merge($data, (array) $row);
             } else {
                 $data['error_msg'] = 'Your account is suspended. Please contact admin for more info!';
             }
             //if ( $query->num_rows() < 1 ):
             if ($suspend === false) {
                 $data['logged_in'] = TRUE;
                 $this->session->set_userdata($data);
                 if (!$this->session->userdata('url')) {
                     redirect(base_url('/welcome/'));
                 } else {
                     redirect($this->session->userdata('url'));
                 }
             }
         }
         //if ($this->form_validation->run() == TRUE):
     }
     //if ($this->input->post()) :
     $page_name = 'login-page';
     if ($this->input->get('alt-theme')) {
         $page_name .= ' ' . $this->input->get('alt-theme');
     }
     $this->load->view(get_client() . '/header', array('title' => 'Login', 'login_page' => TRUE, 'page_name' => $page_name));
     $this->load->view(get_client() . '/login-form', $data);
     $this->load->view(get_client() . '/footer', array('login_page' => TRUE));
 }
コード例 #2
0
$config_values['Global']['HTMLOutput'] = 1;
$html_out = "";
$debug_output = "Torrentwatch Debug:";
$verbosity = 0;
parse_options();
if (check_requirements()) {
    return;
}
check_files();
echo $html_out;
$html_out = "";
flush();
// Feeds
load_feeds($config_values['Feeds']);
feeds_perform_matching($config_values['Feeds']);
get_client();
close_html();
$footer = "<div id=\"footer\">TorrentWatch-X version {$tw_version['0']}";
if (isset($tw_version[1])) {
    $footer .= " - {$tw_version['1']}";
}
echo "{$footer}</div>";
if (!isset($config_values['Settings']['Hide Donate Button'])) {
    echo '<div id="donate">
	<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
	<input type="hidden" name="cmd" value="_s-xclick">
	<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
	">
	<input type="image" src="images/paypal-icon.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
	</form>
    </div>';
コード例 #3
0
echo '<div>';
echo '<label>' . elgg_echo('stormpath:settings:importance') . '</label><br>';
echo elgg_view('input/dropdown', array('name' => 'params[importance]', 'value' => $vars['entity']->importance, 'options_values' => array('sufficient' => elgg_echo('stormpath:settings:importance:option:sufficient'), 'required' => elgg_echo('stormpath:settings:importance:option:required'))));
echo '</div>';
echo '<div>';
echo '<label>' . elgg_echo('stormpath:settings:idsite') . '</label><br>';
echo elgg_view('input/dropdown', array('name' => 'params[idsite]', 'value' => $vars['entity']->idsite, 'options_values' => array(0 => elgg_echo('option:no'), 1 => elgg_echo('option:yes'))));
echo elgg_view('output/longtext', array('value' => elgg_echo('stormpath:settings:idsite:help'), 'class' => 'elgg-subtext'));
echo '</div>';
echo '<div>';
echo '<label>' . elgg_echo('stormpath:settings:email_validate') . '</label><br>';
echo elgg_view('input/dropdown', array('name' => 'params[email_validate]', 'value' => $vars['entity']->email_validate, 'options_values' => array(0 => elgg_echo('option:no'), 1 => elgg_echo('option:yes'))));
echo elgg_view('output/longtext', array('value' => elgg_echo('stormpath:settings:email_validate:help'), 'class' => 'elgg-subtext'));
echo '</div>';
if (api_keys_exists()) {
    $client = get_client();
    $apps = $client->tenant->applications;
    $options_values = array('' => '');
    foreach ($apps as $app) {
        $options_values[$app->name] = $app->name;
    }
    echo '<div class="pbm">';
    echo '<label>' . elgg_echo('stormpath:settings:app') . '</label><br>';
    echo elgg_view('input/dropdown', array('name' => 'params[app_name]', 'value' => $vars['entity']->app_name, 'options_values' => $options_values));
    echo '</div>';
}
?>
<script>
	$(document).ready(function() {
		$('form.elgg-form-plugins-settings-save').attr('enctype', 'multipart/form-data');
	});
コード例 #4
0
ファイル: header.php プロジェクト: relm86/lawfirm
	<link rel="stylesheet" type="text/css" media="all" href="<?php 
    echo base_url();
    ?>
css/font-awesome.min.css" />
	<link rel="stylesheet" type="text/css" media="all" href="<?php 
    echo base_url();
    ?>
css/bootstrap-social.css" />
	<?php 
}
?>
	<link rel="stylesheet" type="text/css" media="all" href="<?php 
echo base_url();
?>
css/theme-<?php 
echo get_client();
?>
.css" />
	<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
	<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
	<!--[if lt IE 9]>
	<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
	<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
	<![endif]-->
	<script type="text/javascript">
	//<![CDATA[
	var ajax_url = "<?php 
echo base_url();
?>
ajax/";
	var base_url = "<?php 
コード例 #5
0
/**
 * Get our configured application
 * 
 * @staticvar type $application
 * @return \Stormpath\Application | false
 */
function get_application()
{
    static $application;
    if ($application) {
        return $application;
    }
    $client = get_client();
    if (!$client) {
        return false;
    }
    $name = elgg_get_plugin_setting('app_name', PLUGIN_ID);
    if (!$name) {
        return false;
    }
    $apps = $client->tenant->applications;
    $apps->search = array('name' => $name);
    $application = $apps->getIterator()->current();
    if ($application) {
        return $application;
    }
    return false;
}
コード例 #6
0
ファイル: dashboard.php プロジェクト: relm86/lawfirm
 public function template_preview2($template_id = NULL)
 {
     $template_id = (int) $template_id;
     $this->db->where('id', $template_id);
     $query = $this->db->get('templates', 1);
     if ($query->num_rows() > 0) {
         $data['template'] = $query->row();
         $this->db->where('template_id', $template_id);
         $this->db->order_by('order', 'ASC');
         $query = $this->db->get('template_images');
         if ($query->num_rows() > 0) {
             $data['main_images'] = $query;
         } else {
             $data['main_images'] = FALSE;
         }
         $this->db->where('template_id', $template_id);
         $this->db->order_by('order', 'ASC');
         $query = $this->db->get('template_videos');
         if ($query->num_rows() > 0) {
             $data['videos'] = $query;
         } else {
             $data['videos'] = FALSE;
         }
     } else {
         $this->new_template(array('error_msg' => 'Template not found. You may try to create new template or hit back to go to previous page!'));
         return;
     }
     $this->load->view(get_client() . '/header', array('jqueryui' => TRUE, 'layout' => $data['template']->layout, 'color_scheme' => $data['template']->color_scheme));
     $this->load->view(get_client() . '/' . $data['template']->layout, $data);
     $this->load->view(get_client() . '/footer', array('jqueryui' => TRUE));
 }
コード例 #7
0
function get_all($sql_db, $sql_df)
{
    $mysqli = new mysqli(DBSERVER, DBUSER, DBPWD, DB);
    $query = "SELECT DISTINCT * " . "FROM `paiements` " . "WHERE `paiements`.`date_paiement` " . "BETWEEN '{$sql_db}' AND '{$sql_df}'";
    $output = '';
    $result = $mysqli->query($query);
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $result_array[] = $row;
    }
    $mysqli->close();
    $total = 0;
    foreach ($result_array as $value) {
        switch ($value["type"]) {
            case "CANTINE":
                $numrol = get_rol($value["idfacture"], 'factures_cantine');
                $redevable = get_enfants($value["idfacture"]);
                break;
            case "AMARRAGE":
                $numrol = get_rol($value["idfacture"], 'factures_amarrage');
                $redevable = get_client($value["idfacture"], 'factures_amarrage');
                break;
            case "PLACE ET ETAL":
                $numrol = get_rol($value["idfacture"], 'factures_etal');
                $redevable = get_mandataire($value["idfacture"], 'factures_etal');
                break;
        }
        $year = substr($value["date_paiement"], 0, 4);
        if ($value["mode"] == 'anl') {
            $value["montantcfp"] = 0;
        }
        $output .= '<Row ss:Height="12.8952">';
        $output .= '<Cell><Data ss:Type="String">' . $value["idpaiement"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . reversedate($value["date_paiement"]) . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . htmlentities($redevable, ENT_QUOTES, "UTF-8") . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">-</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $year . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $value["type"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $value["payeur"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $value["montantcfp"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $value["mode"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $value["numero_cheque"] . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . htmlentities($value["obs"], ENT_QUOTES, "UTF-8") . '</Data></Cell>';
        $output .= '<Cell><Data ss:Type="String">' . $numrol . '</Data></Cell>';
        $output .= '</Row>';
        $total += $value["montantcfp"];
    }
    //print_r($result_array);
    return array($output, $total);
}
コード例 #8
0
ファイル: profile.php プロジェクト: relm86/lawfirm
 public function index()
 {
     $title = 'Update Profile';
     $this->load->view(get_client() . '/header', array('title' => $title));
     $data = array();
     if ($this->input->post() && !$this->input->post('verify_password')) {
         //update profile
         $this->form_validation->set_rules('first_name', 'First Name', "trim|required");
         $this->form_validation->set_rules('last_name', 'Last Name', "trim|required");
         $this->form_validation->set_rules('email', 'Email', "trim|required|valid_email|callback__check_duplicate_email");
         if ($this->input->post('password') || !is_profile_complete()) {
             $this->form_validation->set_rules('password', 'Password', "trim|required|min_length[8]|max_length[16]");
         }
         $this->form_validation->set_rules('phone', 'Phone Number', "trim|required|callback__isValidPhone");
         $this->form_validation->set_rules('zipcode', 'Zip Code', "trim|required|callback__isValidZipCode");
         if ($this->form_validation->run() == TRUE) {
             $data['last_name'] = $this->input->post('last_name');
             $data['first_name'] = $this->input->post('first_name');
             $data['email_address'] = $this->input->post('email');
             $data['gender'] = $this->input->post('gender');
             $data['phone_number'] = $this->input->post('phone');
             $data['zip_code'] = $this->input->post('zipcode');
             if ($this->input->post('password')) {
                 $data['password'] = md5($this->input->post('password'));
             }
             $this->db->where('id', $this->session->userdata('id'));
             $this->db->update('users', $data);
             if ($this->db->affected_rows() > 0) {
                 $data['success_msg'] = 'Update profile success!';
                 if (is_profile_complete()) {
                     $this->session->set_userdata('password_verified', TRUE);
                 }
                 if ($this->session->userdata('url')) {
                     redirect($this->session->userdata('url'));
                 }
             }
         } else {
             $data['error_msg'] = 'Update profile failed. Please check field below!';
         }
     } elseif ($this->input->post('verify_password')) {
         $this->form_validation->set_rules('verify_password', 'Password', "trim|required");
         if ($this->form_validation->run() == TRUE) {
             $this->db->where('id', $this->session->userdata('id'));
             $this->db->where('password', md5($this->input->post('verify_password')));
             $query = $this->db->get('users', 1);
             if ($query->num_rows() > 0) {
                 $this->session->set_userdata('password_verified', TRUE);
             } else {
                 $data['error_msg'] = 'Wrong password, please try again!';
             }
         }
     }
     $data['user'] = get_user_detail();
     if (!is_profile_complete() || !$data['user']->password) {
         //profile not complete -> no need to verified the password
         $data['success_msg'] = 'Please complete data below!';
         $this->load->view(get_client() . '/update_profile', $data);
     } elseif (!$this->session->userdata('password_verified')) {
         $this->load->view(get_client() . '/verify_password', $data);
     } else {
         $this->load->view(get_client() . '/update_profile', $data);
     }
     $this->load->view(get_client() . '/footer', array('picture_upload' => TRUE));
 }
コード例 #9
0
ファイル: welcome.php プロジェクト: relm86/lawfirm
 function not_found()
 {
     $this->load->view(get_client() . '/header');
     $this->load->view(get_client() . '/not_found');
     $this->load->view(get_client() . '/footer');
 }
コード例 #10
0
/**
 * Called on usersettings save action - changes the users password
 * locally and on stormpath
 * 
 * @param type $hook
 * @param type $type
 * @param type $return
 * @param type $params
 * @return boolean|null
 */
function set_user_password($hook = 'usersettings:save', $type = 'user', $return = true, $params = array())
{
    $current_password = get_input('current_password', null, false);
    $password = get_input('password', null, false);
    $password2 = get_input('password2', null, false);
    $user_guid = get_input('guid');
    if ($user_guid) {
        $user = get_user($user_guid);
    } else {
        $user = elgg_get_logged_in_user_entity();
    }
    if ($user && $password) {
        // let admin user change anyone's password without knowing it except his own.
        if (!elgg_is_admin_logged_in() || elgg_is_admin_logged_in() && $user->guid == elgg_get_logged_in_user_guid()) {
            $credentials = array('username' => $user->email, 'password' => $current_password);
            try {
                pam_handler($credentials);
            } catch (\LoginException $e) {
                register_error(elgg_echo('LoginException:ChangePasswordFailure'));
                return false;
            }
        }
        try {
            $result = validate_password($password);
        } catch (\RegistrationException $e) {
            register_error($e->getMessage());
            return false;
        }
        if ($result) {
            if ($password == $password2) {
                // change it on stormpath
                if ($user->__stormpath_user) {
                    try {
                        $client = get_client();
                        $account = $client->dataStore->getResource($user->__stormpath_user, \Stormpath\Stormpath::ACCOUNT);
                        $account->password = $password;
                        $account->save();
                    } catch (\Exception $exc) {
                        register_error($exc->getMessage());
                        return false;
                    }
                } else {
                    if ($password) {
                        add_to_stormpath($user, $password);
                    }
                }
                // change it locally
                $user->salt = _elgg_generate_password_salt();
                $user->password = generate_user_password($user, $password);
                if (is_elgg18()) {
                    $user->code = '';
                    if ($user->guid == elgg_get_logged_in_user_guid() && !empty($_COOKIE['elggperm'])) {
                        // regenerate remember me code so no other user could
                        // use it to authenticate later
                        $code = _elgg_generate_remember_me_token();
                        $_SESSION['code'] = $code;
                        $user->code = md5($code);
                        setcookie("elggperm", $code, time() + 86400 * 30, "/");
                    }
                } else {
                    _elgg_services()->persistentLogin->handlePasswordChange($user, elgg_get_logged_in_user_entity());
                }
                if ($user->save()) {
                    system_message(elgg_echo('user:password:success'));
                    return true;
                } else {
                    register_error(elgg_echo('user:password:fail'));
                }
            } else {
                register_error(elgg_echo('user:password:fail:notsame'));
            }
        } else {
            register_error(elgg_echo('user:password:fail:tooshort'));
        }
    } else {
        // no change
        return null;
    }
    return false;
}