Files
adsPRO/autoload/controls/class.Users.php
Jacek Pyziak afe9d6216d Add migrations for Google Ads settings and demo data
- Create migration for global settings table and add google_ads_customer_id and google_ads_start_date columns to clients table.
- Add migration to include product_url column in products_data table.
- Insert demo data for campaigns, products, and their history for client 'pomysloweprezenty.pl'.
- Implement client management interface with modals for adding and editing clients, including Google Ads Customer ID and data retrieval start date.
2026-02-15 17:46:32 +01:00

146 lines
3.9 KiB
PHP

<?php
namespace controls;
class Users
{
public static function permissions( $user_id, $module = '', $action = '' )
{
// Pyziak Jacek
$permissions[ 1 ][ 'projects' ] = true;
$permissions[ 1 ][ 'finances' ] = true;
$permissions[ 1 ][ 'wiki' ] = true;
$permissions[ 1 ][ 'crm' ] = true;
// Pyziak Grzegorz
$permissions[ 3 ][ 'projects' ] = true;
$permissions[ 3 ][ 'finances' ] = true;
$permissions[ 3 ][ 'wiki' ] = true;
$permissions[ 3 ][ 'crm' ] = true;
// Roman Pyrih
$permissions[ 5 ][ 'projects' ] = true;
$permissions[ 5 ][ 'finances' ] = false;
$permissions[ 5 ][ 'wiki' ] = true;
$permissions[ 5 ][ 'crm' ] = false;
if ( $action and isset( $permissions[ $user_id ][ $module ][ $action ] ) )
{
return $permissions[ $user_id ][ $module ][ $action ];
}
if ( isset( $permissions[ $user_id ][ $module ] ) )
{
return $permissions[ $user_id ][ $module ];
}
return true;
}
public static function logout()
{
$domain = preg_replace( '#^(http(s)?://)?w{3}\.#', '$1', $_SERVER['SERVER_NAME'] );
$cookie_name = str_replace( '.', '-', $domain );
setcookie( $cookie_name, "", strtotime( "-1 year" ), "/", $domain );
session_destroy();
header( 'Location: /' );
exit;
}
public static function settings_save()
{
global $mdb, $user;
if ( \factory\Users::settings_save( $user[ 'id' ], \S::get( 'pushover_api' ), \S::get( 'pushover_user' ) ) )
{
$user = $mdb -> get( 'users', '*', [ 'id' => $user[ 'id' ] ] );
\S::set_session( 'user', $user );
\S::alert( 'Ustawienia zostały zapisane.' );
}
header( 'Location: /settings' );
exit;
}
public static function settings()
{
global $user;
if ( !$user )
{
header( 'Location: /login' );
exit;
}
return \view\Users::settings(
$user
);
}
public static function settings_save_google_ads()
{
$fields = [
'google_ads_developer_token',
'google_ads_client_id',
'google_ads_client_secret',
'google_ads_refresh_token',
'google_ads_manager_account_id',
];
foreach ( $fields as $field )
{
\services\GoogleAdsApi::set_setting( $field, \S::get( $field ) );
}
// wyczyść cached token przy zmianie credentials
\services\GoogleAdsApi::set_setting( 'google_ads_access_token', null );
\services\GoogleAdsApi::set_setting( 'google_ads_access_token_expires', null );
\S::alert( 'Ustawienia Google Ads zostały zapisane.' );
header( 'Location: /settings' );
exit;
}
public static function settings_save_openai()
{
\services\GoogleAdsApi::set_setting( 'openai_api_key', \S::get( 'openai_api_key' ) );
\services\GoogleAdsApi::set_setting( 'openai_model', \S::get( 'openai_model' ) );
\S::alert( 'Ustawienia OpenAI zostały zapisane.' );
header( 'Location: /settings' );
exit;
}
public static function login()
{
if ( $user = \factory\Users::login(
\S::get( 'email' ),
md5( \S::get( 'password' ) )
) )
{
// zapamiętaj logowanie
if ( \S::get( 'remember' ) )
{
$domain = preg_replace( '#^(http(s)?://)?w{3}\.#', '$1', $_SERVER['SERVER_NAME'] );
$cookie_name = str_replace( '.', '-', $domain );
$value = [ 'email' => \S::get( 'email' ), 'hash' => md5( \S::get( 'password' ) ) ];
$value = json_encode( $value );
setcookie( $cookie_name, $value, strtotime( "+1 year" ), "/", $domain );
}
\S::set_session( 'user', $user );
echo json_encode( [ 'result' => 'true', 'msg' => 'Właśnie zostałeś zalogowany. Za chwilę nastąpi przekierowanie.', 'default_project' => $user[ 'default_project' ] ] );
}
else
{
echo json_encode( [ 'result' => 'false', 'msg' => 'Podany login i hasło są nieprawidłowe.' ] );
}
exit;
}
public static function login_form()
{
return \Tpl::view( 'users/login-form' );
}
}