Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /************************************************************
- UsersManagement.class.php
- Product : Digital Asset
- Version : 1.0
- Release : 0
- Date Created : Fri Mar 12 16:09:28 EET 2010
- Developed By : Kamil Baderddine PHP Department LayoutLTD
- All Rights Reserved , Layout LTD COPYRIGHT 2010
- Page Description :
- ************************************************************/
- if( is_file( '../../backup/base_src.php' ) || is_file( '../../../backup/base_src.php' ) )
- {
- if( is_file( '../../backup/base_src.php' ) )
- {
- require_once( '../../backup/base_src.php');
- }
- else
- {
- require_once( '../../../backup/base_src.php');
- }
- require_once( $basedir . 'includes/library.php');
- }
- else if(is_file('../../../../../backup/base_src.php'))
- {
- }
- else
- {
- require_once( DA_BASE_SRC . 'app/includes/library.php');
- }
- class UsersManagement extends request{
- /**
- * Class Constructor
- *
- * @return UsersManagement
- */
- function UsersManagement ()
- {
- }
- /**
- * Get Users
- *
- * @param unknown_type $query_more
- */
- function GetUsers( $query_more = "" )
- {
- global $strings, $MY_DBH, $row, $databaseType,$tableCollab;
- parent::PrepareQuery();
- $this->query_sql .= ' FROM ' . $tableCollab["users"] . ' users ';
- $count = count( $this->query_joins_array );
- for( $index = 0 ; $index < $count ; $index++ )
- {
- switch ( $this->query_joins_array[ $index ] )
- {
- case "roles":
- $this->query_sql .= " LEFT JOIN " . $tableCollab["roles"] . " roles ON roles.r_id = users.u_role_id ";
- break;
- case "user_group":
- $this->query_sql .= " LEFT JOIN " . $tableCollab["user_group"] . " ug ON ug.fk_users_u_id = users.u_id ";
- break;
- case "approval_user_group":
- $this->query_sql .= " LEFT JOIN " . $tableCollab["approval_user_group"] . " aug ON aug.fk_u_id = users.u_id ";
- break;
- case "ad_host":
- $this->query_sql .= " LEFT JOIN " . $tableCollab["ad_host"] . " adh ON users.fk_adh_id = adh.adh_id ";
- break;
- }
- }
- $this->query_sql .= $query_more;
- parent::GetSql();
- }
- /**
- * Get Users
- *
- * @param unknown_type $query_more
- */
- function GetUserGroups( $query_more = "" )
- {
- global $strings, $MY_DBH, $row, $databaseType,$tableCollab;
- parent::PrepareQuery();
- $this->query_sql .= ' FROM ' . $tableCollab["user_group"] . ' ug ';
- $count = count( $this->query_joins_array );
- $this->query_sql .= $query_more;
- parent::GetSql();
- }
- function CheckAllowedIP()
- {
- $ip = $_SERVER['REMOTE_ADDR'];
- $ip_ad_permissions_obj = new IPAddressPermissions();
- $query_more = " WHERE 1";
- $ip_ad_permissions_obj->members_array = array( "iap.iap_id" );
- $ip_ad_permissions_obj->query_joins_array = array("setting");
- $ip_ad_permissions_obj->GetIPAddressPermissions( $query_more );
- $totla_count = $ip_ad_permissions_obj->count;
- $ip_ad_permissions_obj = new IPAddressPermissions();
- $query_more = " WHERE ( iaps.iaps_user_group_id = '" . $this->data["users_u_id"][0] . "' AND iaps.iaps_type = 'user' )";
- if( $this->data["ug_fk_groups_g_id"][0] > 0 )
- {
- $query_more .= "OR ( iaps.iaps_user_group_id IN( " . implode( ",", $this->data["ug_fk_groups_g_id"] ) . ") AND iaps.iaps_type = 'group' )";
- }
- $ip_ad_permissions_obj->members_array = array( "iap.iap_id","iap.iap_ip", "iaps.iaps_type", "iaps.iaps_user_group_id" );
- $ip_ad_permissions_obj->query_joins_array = array("setting");
- $ip_ad_permissions_obj->GetIPAddressPermissions( $query_more );
- if( $ip_ad_permissions_obj->count > 0 )
- {
- for( $i = 0 ; $i < $ip_ad_permissions_obj->count ; $i++ )
- {
- $permission_ip = $ip_ad_permissions_obj->data["iap_iap_ip"][$i];
- if( substr( $ip, 0, strlen( $permission_ip ) ) == $permission_ip )
- {
- return true;
- }
- }
- return false;
- }
- else
- {
- if( $this->data["users_u_allow_external_access"][0] == 0 && $totla_count > 0 )
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- }
- /**
- * Retrieve User Info and check if login success
- *
- * @param String $username
- * @param String $password
- * @return unknown
- */
- function AuthenticateUser( $array_data, $np_data )
- {
- //giving a little delay for the mass requests
- sleep(1);
- $username = $array_data['auto_user_name'];
- $password = $array_data['auto_user_password'];
- $auto_login = $array_data['auto_login_user'];
- {/** Check if user exists */
- $query_cond = " WHERE users.u_name = '$username' and u_is_deleted='0' and u_is_disabled=0";
- $this->query_joins_array = array("user_group");
- $this->members_array = array( "users.u_id","users.u_profil", "users.u_password", "users.u_name", "users.u_role_id", "users.u_first_name", "users.u_last_name", "users.u_lan", "users.u_displayed_records", "users.u_theme_id", "ug.fk_groups_g_id", "users.fk_adh_id", "users.u_color", "users.u_sort_by", "users.fk_sl_id", "users.u_default_page", "users.u_default_search_type", "users.u_default_view", "users.fk_filters_f_id", "users.u_default_file_open", "users.u_email", "users.u_path_home_page", "users.u_is_cache_deleted", "users.u_auto_pagination", "users.u_sl_default_search" ,"users.u_visible_menu_items","users.u_default_search_keywords", "users.u_is_approver", "users.u_allow_external_access" );
- $this->GetUsers( $query_cond );
- }
- if( !$this->count || $this->count == 0 )
- {
- /** Username does not exist */
- $return_array['success'] = 0;
- //$return_array['msg'] = "The user name you entered is invalid.";
- $return_array['msg'] = "Username or Password are wrong.";
- $return_array['class'] = "error errorborder";
- return $return_array;
- }
- elseif ( $this->CheckAllowedIP() == false )
- {
- $return_array['success'] = 0;
- $return_array['msg'] = text('you_dont_have_access_from_this_ip');
- $return_array['class'] = "error errorborder";
- return $return_array;
- }
- else
- {
- //check for brute force
- define('LOGIN_FAILED_ATTEMPTS', 3);
- define('LOGIN_FAILED_LOCK_TIME', 3*60);
- $logs = new Logs();
- $logs->members_array = array("li.li_id","li.li_user_id","li.li_ip","li.li_time","li.li_type");
- $logs->GetLoginLogs("where li_user_id='".$this->data["users_u_id"][0]."' order by li_id desc limit ".LOGIN_FAILED_ATTEMPTS);
- $brute_force = false;
- if($logs->count >= LOGIN_FAILED_ATTEMPTS ){
- $brute_force = true;
- for($i=0; $i<$logs->count;$i++){
- if($logs->data['li_li_type'][$i]=='login' || strtotime($logs->data['li_li_time'][$i]) < (time() - LOGIN_FAILED_LOCK_TIME)){
- $brute_force = false;
- break;
- }
- }
- if($brute_force){
- /** Password is invalid. */
- $return_array['success'] = 0;
- //$return_array['msg'] = "The password you entered is invalid.";
- $return_array['msg'] = "Your account is locked. Try again later. ";
- $return_array['class'] = "error errorborder";
- return $return_array;
- }
- }
- $return_array['sl_id'] = $this->data["users_fk_sl_id"][0];
- if( $this->data["users_fk_adh_id"][0] > 0 )
- {
- $variable_intialization_array = array();
- $variable_intialization_array['host_db_id'] = $this->data["users_fk_adh_id"][0];
- $active_directory_management = new ActiveDirectoryManagement( $variable_intialization_array );
- if( $active_directory_management->ConnectToHost() )
- {
- if( $active_directory_management->BindToHost() )
- {
- if ( $active_directory_management->LoginAppUserToHost( $username, $password ) )
- {
- foreach ( $array_data as $key => $value )
- {
- if( $key != 'auto_user_name' && $key != 'auto_user_password' && $key != 'auto_login_user' )
- {
- $_SESSION[ $key ] = $value;
- }
- }
- $_SESSION['np_data'] = $np_data;
- $this->FillArrayData();
- $return_array['success'] = 1;
- }
- else
- {
- $return_array['success'] = 0;
- $return_array['msg'] = implode( ", ", $active_directory_management->GetExecError() );
- $return_array['class'] = "error errorborder";
- }
- }
- else
- {
- $return_array['success'] = 0;
- $return_array['msg'] = implode( ", ", $active_directory_management->GetExecError() );
- $return_array['class'] = "error errorborder";
- }
- }
- else
- {
- $return_array['success'] = 0;
- $return_array['msg'] = implode( ", ", $active_directory_management->GetExecError() );
- $return_array['class'] = "error errorborder";
- }
- $active_directory_management->Destruct();
- return $return_array;
- }
- else
- {
- $password = CryptManagement::CheckIfNeedEncodeAndReturnString( $password );
- /** Username exists, check if password matches */
- if( $this->data["users_u_password"][0] == $password )
- {
- foreach ( $array_data as $key => $value )
- {
- if( $key != 'auto_user_name' && $key != 'auto_user_password' && $key != 'auto_login_user' )
- {
- $_SESSION[ $key ] = $value;
- }
- }
- $_SESSION['np_data'] = $np_data;
- $this->FillArrayData();
- $return_array['success'] = 1;
- return $return_array;
- }
- else
- {
- /** Password is invalid. */
- $return_array['success'] = 0;
- //$return_array['msg'] = "The password you entered is invalid.";
- $return_array['msg'] = "Username or Password are wrong.";
- $return_array['class'] = "error errorborder";
- return $return_array;
- }
- }
- }
- }
- /**
- * Fill Data to array
- *
- */
- function FillArrayData()
- {
- /** Login is valid */
- $this->digital_asset_user_id = $this->data["users_u_id"][0];
- $this->user_name = $this->data["users_u_name"][0];
- $this->user_password = $this->data["users_u_password"][0];
- $this->user_email = $this->data["users_u_email"][0];
- $this->user_fname = $this->data["users_u_first_name"][0];
- $this->user_lname = $this->data["users_u_last_name"][0];
- $this->user_profil = $this->data["users_u_profil"][0];
- $this->user_role = $this->data["users_u_role_id"][0];
- $this->user_role_profile = $this->data["users_u_profil"][0];
- $this->user_language = $this->data["users_u_lan"][0];
- $this->user_displayed_records = $this->data["users_u_displayed_records"][0];
- $this->user_theme_id = $this->data["users_u_theme_id"][0];
- $this->user_group_id = implode( ",", $this->data["ug_fk_groups_g_id"] );
- $this->user_color = $this->data["users_u_color"][0];
- $this->u_sort_by = $this->data["users_u_sort_by"][0];
- $this->user_default_page = $this->data["users_u_default_page"][0];
- $this->default_search_type = $this->data["users_u_default_search_type"][0];
- $this->user_default_sl_id = $this->data["users_fk_sl_id"][0];
- $this->user_default_view = $this->data["users_u_default_view"][0];
- $this->user_default_filter = $this->data["users_fk_filters_f_id"][0];
- $this->u_default_file_open = $this->data["users_u_default_file_open"][0];
- $this->u_path_home_page = $this->data["users_u_path_home_page"][0];
- $this->u_is_cache_deleted = $this->data["users_u_is_cache_deleted"][0];
- $this->u_auto_pagination = $this->data["users_u_auto_pagination"][0];
- $this->u_sl_deafult_search = $this->data["users_u_sl_default_search"][0];
- $this->u_visible_menu_items = $this->data["users_u_visible_menu_items"][0];
- $this->u_default_search_keywords = $this->data["users_u_default_search_keywords"][0];
- $this->u_is_approver = $this->data["users_u_is_approver"][0];
- $this->u_allow_external_access = $this->data["users_u_allow_external_access"][0];
- /** Register Session Variables */
- $this->LoginAuthenticatedUser();
- }
- /**
- * Register session variables and login an authenticated user.
- *
- * @param int $user_id
- * @param String $username
- * @param int $user_level
- */
- function LoginAuthenticatedUser()
- {
- /**
- * Getting data about the language from the language_management table
- */
- {
- $language_management = new LanguageManagement();
- $language_management->members_array = array( "lm_lang_name", "lm.lm_align", "lm.lm_dir", "lm.lm_type", "lm.lm_main_type");
- $query_more = "";
- $language_management->GetLanguages( $query_more );
- }
- $_SESSION['digital_asset_user_id'] = $this->digital_asset_user_id;
- $_SESSION['user_name'] = $this->user_name;
- $_SESSION['user_password'] = $this->user_password;
- $_SESSION['user_email'] = $this->user_email;
- $_SESSION['user_fname'] = $this->user_fname;
- $_SESSION['user_lname'] = $this->user_lname;
- $_SESSION['user_profil'] = $this->user_profil;
- $_SESSION['user_role'] = $this->user_role;
- $_SESSION['user_role_profile'] = $this->user_role_profile;
- $_SESSION['user_language'] = $this->user_language;
- $_SESSION['user_displayed_records'] = $this->user_displayed_records;
- $_SESSION['user_theme_id'] = $this->user_theme_id;
- $_SESSION['user_color'] = $this->user_color;
- $_SESSION['user_sort_by'] = $this->u_sort_by;
- $_SESSION['u_branche_id'] = $this->u_branche_id;
- $_SESSION['user_default_page'] = $this->user_default_page;
- $_SESSION['default_search_type'] = $this->default_search_type;
- $_SESSION['user_default_sl_id'] = $this->user_default_sl_id;
- $_SESSION['user_default_view'] = $this->user_default_view;
- $_SESSION['user_default_filter'] = $this->user_default_filter;
- $_SESSION['u_default_file_open'] = $this->u_default_file_open;
- $_SESSION['time_of_login'] = time();
- $_SESSION['auto_pagination'] = $this->u_auto_pagination;
- $_SESSION['u_is_approver'] = $this->u_is_approver;
- $_SESSION['u_allow_external_access'] = $this->u_allow_external_access;
- $_SESSION['sl_default_search'] = $this->u_sl_deafult_search;
- $_SESSION['visible_menu_items'] = $this->u_visible_menu_items;
- $_SESSION['u_default_search_keywords'] = explode("|",$this->u_default_search_keywords);
- $_SESSION['user_group_id'] = ( strlen( trim( $this->user_group_id ) ) > 0 ? $this->user_group_id : 0 ) ;
- $lang_index = array_search( $_SESSION['user_language'], $language_management->data["lm_lm_main_type"] ) ;
- {
- $_SESSION[$_SESSION['user_language']]['align'] = $language_management->data["lm_lm_align"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['dir'] = $language_management->data["lm_lm_dir"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['type'] = $language_management->data["lm_lm_type"][$lang_index];
- }
- if( $this->user_default_sl_id > 0 && strlen( trim( $this->u_path_home_page ) ) > 0 )
- {
- $_SESSION['user_home_page'][ $this->digital_asset_user_id ][ $this->user_default_sl_id ] = $this->u_path_home_page;
- }
- {
- $search_keywords_obj = new SearchKeywords();
- $query_more = "";
- $search_keywords_obj->members_array = array( "sk.sk_id", "sk.sk_name", "sk.sk_types" );
- $search_keywords_obj->GetSearchKeywords( $query_more );
- for( $index = 0 ; $index < $search_keywords_obj->count ; $index++ )
- {
- $_SESSION['sk'][ $search_keywords_obj->data["sk_sk_name"][$index] ] = $search_keywords_obj->data["sk_sk_types"][$index];
- }
- }
- {
- $sphinx_config_obj = new Sphinx();
- $sphinx_config_obj->members_array = array( "sc.sc_id", "sc.sc_property", "sc.sc_value" );
- $sphinx_config_obj->GetSphinxConfiguration( "" );
- $count = $sphinx_config_obj->count;
- $properties_array = $sphinx_config_obj->data["sc_sc_property"];
- $values_array = $sphinx_config_obj->data["sc_sc_value"];
- $res_array = $sphinx_config_obj->BuildSphinxConfigurationArray( $properties_array, $values_array, $count );
- $_SESSION['sphinx']['port'] = $res_array['sphinx_port'];
- }
- {
- $this->BuildUserPrivilege();
- }
- {/** fill privileges in session */
- {/** Privilege actions */
- $priv_obj = new PrivilegeManagement();
- $priv_array = $priv_obj->GetStorageLocationPrivileges();
- $action_code = $priv_array['action_code'];
- $access = $priv_array['access'];
- $roles = $priv_array['roles'];
- for( $p = 0; $p < count( $action_code ); $p++ )
- {
- $_SESSION['privilege'][ $roles[$p] ][ $action_code[$p] ] = $access[$p];
- }
- }
- }
- {
- $style_preferencees_obj = new ThemePreferences();
- $style_preferencees_obj->FillThemePreferences();
- }
- $folder_permission_obj = new FolderPermission();
- $folder_permission_obj->FillAllowedUserPath();
- //$this->RemoveUserSearchFiles();
- $this->CheckIfCacheDeleted();
- }
- function CheckIfCacheDeleted()
- {
- if( $this->u_is_cache_deleted == 0 )
- {
- URLHelper::DeleteBrowserCache();
- $this->UpdateCacheAsDeleted( $this->digital_asset_user_id );
- }
- }
- function UpdateCacheAsDeleted ( $user_id )
- {
- global $tableCollab;
- $tmp_delete_cache = "UPDATE " . $tableCollab["users"] . " SET u_is_cache_deleted=1";
- $tmp_delete_cache .= " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $tmp_delete_cache );
- }
- function RemoveUserSearchFiles()
- {
- global $config;
- $path = $config['dam_path'] . "dspace/tmp/search/" . SessionHelper::GetUserID();
- is_dir($path) && DirectoryHelper::DeleteDirectory($path);
- }
- /**
- * Delete User
- *
- * @param int $user_id
- */
- function DeleteUser ( $user_id, $deleted_by = 0 )
- {
- global $tableCollab;
- $deleted_by = ( $deleted_by == 0 ? SessionHelper::GetUserID() : $deleted_by );
- $tmp_delete_user = "UPDATE " . $tableCollab["users"] . " SET u_is_deleted=1, u_deleted_by=" . $deleted_by . ", u_deleted_date=NOW()";
- $tmp_delete_user .= " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $tmp_delete_user );
- }
- /**
- * Delete User
- *
- * @param int $user_id
- */
- function DisableUser ( $user_id )
- {
- global $tableCollab;
- $tmp_delete_user = "UPDATE " . $tableCollab["users"] . " SET u_is_disabled=1";
- $tmp_delete_user .= " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $tmp_delete_user );
- }
- /**
- * Activate User
- *
- * @param int $user_id
- */
- function EnableUser ( $user_id )
- {
- global $tableCollab;
- $tmp_delete_user = "UPDATE " . $tableCollab["users"] . " SET u_is_disabled=0";
- $tmp_delete_user .= " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $tmp_delete_user );
- }
- /**
- * Activate User
- *
- * @param int $user_id
- */
- function ActivateUser ( $user_id )
- {
- global $tableCollab;
- $tmp_delete_user = "UPDATE " . $tableCollab["users"] . " SET u_is_deleted=0";
- $tmp_delete_user .= " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $tmp_delete_user );
- }
- /**
- * Activate User
- *
- * @param int $user_id
- */
- function EraseUser( $user_id )
- {
- global $tableCollab;
- $perm_delete_user = "DELETE FROM " . $tableCollab["users"] . " WHERE u_id = '" . $user_id . "'";
- AdvancedConnectSql( $perm_delete_user );
- }
- /**
- * Set default filter
- *
- * @param int $user_id
- */
- function SetDefaultFilter ( $filter_id )
- {
- global $tableCollab;
- $tmp_update_user = "UPDATE " . $tableCollab["users"] . " SET fk_filters_f_id=" . $filter_id;
- $tmp_update_user .= " WHERE u_id = '" . SessionHelper::GetUserID() . "'";
- AdvancedConnectSql( $tmp_update_user );
- $_SESSION['user_default_filter'] = $filter_id;
- }
- /**
- * Add new user
- *
- * @param Array $user_info_array
- * @param Object $language_management
- * @return Int
- */
- function AddUser( $user_info_array, &$language_management )
- {
- global $tableCollab;
- $user_password = CryptManagement::CheckIfNeedEncodeAndReturnString( $user_info_array["user_password"] );
- $auto_pagination = $user_info_array["u_auto_pagination"] ? 1 : 0;
- $u_is_approver = $user_info_array["u_is_approver"] ? 1 : 0;
- $is_deleted = ( $user_info_array["is_deleted"] == 1 ? 1 : 0 );
- $u_allow_external_access = ( $user_info_array['u_allow_external_access'] == 1 ? 1 : 0 );
- $tmp_add_user = "INSERT INTO " . $tableCollab["users"]
- . "( u_name, u_password ,u_role_id,u_first_name,u_last_name,u_creation_date,u_created_by, u_profil, u_lan, u_displayed_records, u_theme_id, u_color, u_sort_by, u_email, fk_sl_id, u_default_page, u_default_search_type, fk_adh_id, u_default_view, fk_filters_f_id, u_allowed_file_owner, u_path_home_page, u_auto_pagination, u_allowed_assign_job, u_is_disabled, u_sl_default_search, u_is_deleted, u_is_archivist, u_is_approver, u_allow_external_access ) VALUES ('" . $user_info_array["user_name"] . "','" . $user_password . "','" . $user_info_array["user_role"] . "','" . $user_info_array["first_name"] . "','" . $user_info_array["last_name"] . "',now(), " . SessionHelper::GetUserID() . ",'1','" . $user_info_array["user_language"] . "', ". $user_info_array["displayed_records"] .", " . $user_info_array["user_theme"] . ", '" . $user_info_array["user_color"] . "', '" . $user_info_array["user_sort_by"] . "', '" . $user_info_array["user_email"] . "', " . $user_info_array["user_sl_id"] . ", '" . $user_info_array["default_page"] . "', '" . $user_info_array["default_search"] . "', '" . $user_info_array["user_adh"] . "', '" . $user_info_array["default_view"] . "', 0, " . $user_info_array["allowed_file_owner"] . ", '" . $user_info_array["u_path_home_page"] . "', " . $auto_pagination . ", " . $user_info_array['allowed_assign_job'] . ", 0, '". $user_info_array['default_search'] ."', " . $is_deleted . ", " . $user_info_array['u_is_archivist'] . ", " . $u_is_approver . ", " . $u_allow_external_access . ")";
- $res = AdvancedConnectSql( $tmp_add_user );
- if( !$res['query_error'] )
- {
- for( $i = 0 ; $i < count( $user_info_array["user_group"] ) ; $i++ )
- {
- if( $user_info_array["user_group"][$i] != "ALL" )
- {
- $tmp_add_user = "INSERT INTO " . $tableCollab["user_group"]
- . "( fk_groups_g_id, fk_users_u_id ) VALUES (" . $user_info_array["user_group"][$i] . "," . $res["last_id"] . ")";
- AdvancedConnectSql( $tmp_add_user );
- $insert_permission = "INSERT IGNORE INTO " . $tableCollab['maintenance_users_permissions_run'] . " ( mupr_type, mupr_user_group_id) VALUES ('group', " . $user_info_array["user_group"][$i] . ")";
- $errors = AdvancedConnectSql( $insert_permission );
- }
- }
- }
- $return_array = array(
- "query_error" => $res['query_error'],
- "last_id" => $res["last_id"]
- );
- return $return_array;
- }
- /**
- * Edit Profile
- *
- * @param array $user_info_array
- * @param array $language_management
- * @return array $res
- */
- function EditProfile( $user_info_array, &$language_management )
- {
- //echo "<pre>"; print_r($user_info_array); exit;
- global $tableCollab;
- if ($user_info_array["user_theme"] > 0)
- {
- $theme_obj = new ThemePreferences();
- $theme_obj->members_array = array('tp.tp_header_bg');
- $more = " WHERE tp_id='" . $user_info_array["user_theme"] . "'";
- $theme_obj->GetThemePreferences($more);
- $color = $theme_obj->data['tp_tp_header_bg'][0];
- if ( $color != "" )
- {
- {
- $default_css_path = '../themes/original/css/default.css';
- $destination_css_path = '../../backup/themes/theme' . $user_info_array["user_theme"] . '.css';
- $css_buffer = file_get_contents($default_css_path);
- ob_start();
- $keywords = array( '#2679A8', '#2585e5', '#1d6186', '#1a5779', '#3ca5e0', 'rgb(38, 121, 168)' );
- $colors = array($color);
- $css_buffer = str_replace($keywords ,$color ,$css_buffer );
- echo $css_buffer;
- $new_css = ob_get_clean();
- PrintHelper::WriteToFile($destination_css_path,'w',$new_css);
- }
- {
- $default_ar_css_path = '../themes/original/css/default-ar.css';
- $destination_ar_css_path = '../../backup/themes/theme' . $user_info_array["user_theme"] . '-ar.css';
- $css_buffer = file_get_contents($default_ar_css_path);
- ob_start();
- $keywords = array( '#2679A8', '#2585e5', '#1d6186', '#1a5779', '#3ca5e0', 'rgb(38, 121, 168)' );
- $colors = array($color);
- $css_buffer = str_replace($keywords ,$color ,$css_buffer );
- echo $css_buffer;
- $new_css = ob_get_clean();
- PrintHelper::WriteToFile($destination_ar_css_path,'w',$new_css);
- }
- }
- }
- $tmp_edit_user = "UPDATE " . $tableCollab["users"] . " SET u_name='" . $user_info_array["user_name"] . "'";
- if( strlen( trim( $user_info_array["user_password"] ) ) > 0 )
- {
- $user_password = CryptManagement::CheckIfNeedEncodeAndReturnString( $user_info_array["user_password"] );
- $tmp_edit_user .= ", u_password ='" . $user_password . "' ";
- }
- $tmp_edit_user .= ", u_first_name='" . $user_info_array["first_name"] . "', u_last_name='" . $user_info_array["last_name"] . "',u_lan ='" . $user_info_array["user_language"] . "', u_displayed_records='". $user_info_array["displayed_records"] ."', u_theme_id=" . $user_info_array["user_theme"] . ",u_color='" . $user_info_array["user_color"] . "', u_sort_by='" . $user_info_array["user_sort_by"] . "', u_email='" . $user_info_array["user_email"] . "'" . ", fk_sl_id=" . $user_info_array["user_sl_id"] . ", u_default_page='" . $user_info_array["default_page"] . "', u_default_search_type='" . $user_info_array["default_search"] . "', u_default_view = '" . $user_info_array["default_view"] ."', u_default_file_open = '" . $user_info_array["u_default_file_open"] . "', u_auto_pagination = '" . $user_info_array["u_auto_pagination"] . "', u_visible_menu_items = '" . $user_info_array["visible_menu_items"] . "', u_sl_default_search = '" . $user_info_array['sl_default_search']."', u_default_search_keywords='" . implode("|", $user_info_array["my_profile_search_keywords"]) . "'";
- $tmp_edit_user .= " WHERE u_id = '" . $user_info_array['user_id'] . "'";
- $res = AdvancedConnectSql( $tmp_edit_user );
- if( $res['query_error'] == 0 )
- {
- if( strlen( trim( $user_info_array["user_password"] ) ) > 0 )
- {
- $file_logs_obj = new FileLogs();
- $extra_array = array();
- $extra_array['desc'] = "%change_of_user_password% : " . $user_info_array["first_name"] . " " . $user_info_array["last_name"];
- $extra_array['sf_id'] = 0;
- $file_logs_obj->InsertLog( '', 83, $extra_array );
- }
- if( $user_info_array['user_id'] == SessionHelper::GetUserID() )
- {
- $_SESSION['user_displayed_records'] = $user_info_array["displayed_records"];
- $this->UpdateUserStyle( $user_info_array["user_theme"] );
- }
- $_SESSION['user_language'] = $user_info_array["user_language"];
- $lang_index = array_search( $_SESSION['user_language'], $language_management->data["lm_lm_main_type"] ) ;
- {
- $_SESSION[$_SESSION['user_language']]['align'] = $language_management->data["lm_lm_align"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['dir'] = $language_management->data["lm_lm_dir"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['type'] = $language_management->data["lm_lm_type"][$lang_index];
- }
- if( $user_info_array['user_id'] == SessionHelper::GetUserID() )
- {
- $_SESSION['user_name'] = $user_info_array["user_name"];
- $_SESSION['user_fname'] = $user_info_array["first_name"];
- $_SESSION['user_lname'] = $user_info_array["last_name"];
- $_SESSION['user_role'] = $user_info_array["user_role"];
- $_SESSION['user_language'] = $user_info_array["user_language"];
- $_SESSION['user_displayed_records'] = $user_info_array["displayed_records"];
- $_SESSION['user_theme_id'] = $user_info_array["user_theme"];
- $_SESSION['visible_menu_items'] = $user_info_array["visible_menu_items"];
- $_SESSION['user_group_id'] = implode( ",", $user_info_array["user_group"] );
- $_SESSION['sl_default_search'] = $user_info_array["sl_default_search"];
- $_SESSION['u_default_search_keywords'] = $user_info_array["my_profile_search_keywords"];
- $query_cond = " WHERE users.u_id = '" . SessionHelper::GetUserID() . "'";
- $this->query_joins_array = array("user_group");
- $this->members_array = array( "users.u_id","users.u_profil", "users.u_default_search_keywords" ,"users.u_password", "users.u_name", "users.u_role_id", "users.u_first_name", "users.u_last_name", "users.u_lan", "users.u_displayed_records", "users.u_theme_id", "ug.fk_groups_g_id", "users.fk_adh_id", "users.u_color", "users.u_sort_by", "users.u_default_page", "users.u_default_search_type", "users.u_default_view", "users.u_default_file_open", "users.u_path_home_page", "users.u_auto_pagination", "users.u_visible_menu_items", "users.u_sl_default_search", "users.u_is_approver" );
- $this->GetUsers( $query_cond );
- $this->FillArrayData();
- }
- }
- return $res['query_error'];
- }
- function EditUser( $user_info_array, &$language_management )
- {
- global $tableCollab;
- $u_is_approver = $user_info_array["u_is_approver"] ? 1 : 0;
- $tmp_edit_user = "UPDATE " . $tableCollab["users"] . " SET u_name='" . $user_info_array["user_name"] . "'";
- if(strlen(trim( $user_info_array["user_password"] ) ) > 0 )
- {
- $user_password = CryptManagement::CheckIfNeedEncodeAndReturnString( $user_info_array["user_password"] );
- $tmp_edit_user .= ", u_password ='" . $user_password . "' ";
- }
- $tmp_edit_user .= ", u_role_id='" . $user_info_array["user_role"] . "', u_first_name='" . $user_info_array["first_name"] . "', u_last_name='" . $user_info_array["last_name"] . "',u_lan ='" . $user_info_array["user_language"] . "', u_displayed_records='". $user_info_array["displayed_records"] ."', u_theme_id=" . $user_info_array["user_theme"] . ",u_color='" . $user_info_array["user_color"] . "', u_sort_by='" . $user_info_array["user_sort_by"] . "', u_email='" . $user_info_array["user_email"] . "'" . ", fk_sl_id=" . $user_info_array["user_sl_id"] . ", u_default_page='" . $user_info_array["default_page"] . "', u_default_search_type='" . $user_info_array["default_search"] . "', fk_adh_id='" . $user_info_array["user_adh"] . "', u_default_view = '" . $user_info_array["default_view"] ."', u_default_file_open = '" . $user_info_array["u_default_file_open"] . "', u_allowed_file_owner = '" . $user_info_array["allowed_file_owner"] . "', u_path_home_page = '" . $user_info_array["u_path_home_page"] . "', u_allowed_assign_job= '" . $user_info_array["allowed_assign_job"] . "'";
- if( $user_info_array["u_is_archivist"] >= 0 )
- {
- $tmp_edit_user .= ", u_is_archivist = '" . $user_info_array["u_is_archivist"] . "'";
- }
- if( $user_info_array["u_sl_default_search"] != 0 )
- {
- $tmp_edit_user .= ", u_sl_default_search = '" . $user_info_array["u_sl_default_search"] . "'";
- }
- if( $user_info_array["u_is_approver"] != 0 )
- {
- $tmp_edit_user .= ", u_is_approver = '" . $user_info_array["u_is_approver"] . "'";
- }
- if( $user_info_array["u_is_approver"] != 0 )
- {
- $tmp_edit_user .= ", u_is_approver = '" . $user_info_array["u_is_approver"] . "'";
- }
- if( $user_info_array["u_allow_external_access"] >= 0 )
- {
- $tmp_edit_user .= ", u_allow_external_access = '" . $user_info_array["u_allow_external_access"] . "'";
- }
- $tmp_edit_user .= " WHERE u_id = '" . $user_info_array['user_id'] . "'";
- $res = AdvancedConnectSql( $tmp_edit_user );
- if( $res['query_error'] == 0 )
- {
- if( strlen( trim( $user_info_array["user_password"] ) ) > 0 )
- {
- $file_logs_obj = new FileLogs();
- $extra_array = array();
- $extra_array['desc'] = "%change_of_user_password% : " . $user_info_array["first_name"] . " " . $user_info_array["last_name"];
- $extra_array['sf_id'] = 0;
- $file_logs_obj->InsertLog( '', 83, $extra_array );
- }
- if( $user_info_array["old_user_adh"] != $user_info_array["user_adh"] )
- {
- $file_logs_obj = new FileLogs();
- $extra_array = array();
- $extra_array['desc'] = "%change_of_authentication_type% : " . $user_info_array["first_name"] . " " . $user_info_array["last_name"];
- $extra_array['sf_id'] = 0;
- $file_logs_obj->InsertLog( '', 85, $extra_array );
- }
- {
- $user_group_obj = new Groups();
- $user_group_obj->members_array = array( "ug.fk_users_u_id", "ug.fk_groups_g_id" );
- $query_more = " WHERE ug.fk_users_u_id=" . $user_info_array["user_id"];
- $user_group_obj->GetUserGroups( $query_more );
- for( $i = 0 ; $i < $user_group_obj->count ; $i++ )
- {
- $insert_permission = "INSERT IGNORE INTO " . $tableCollab['maintenance_users_permissions_run'] . " ( mupr_type, mupr_user_group_id) VALUES ('group', " . $user_group_obj->data[ "ug_fk_groups_g_id" ][$i] . ")";
- $errors = AdvancedConnectSql( $insert_permission );
- }
- }
- $tmp_delete = "DELETE FROM " . $tableCollab["user_group"];
- $tmp_delete .= " WHERE fk_users_u_id = '" . $user_info_array["user_id"] . "'";
- AdvancedConnectSql( $tmp_delete );
- for( $i = 0 ; $i < count( $user_info_array["user_group"] ) ; $i++ )
- {
- if( $res_1['affected_rows'] == 0 && $user_info_array["user_group"][$i] != "ALL" )
- {
- $tmp_edit_group = "INSERT INTO " . $tableCollab["user_group"]
- . "( fk_groups_g_id, fk_users_u_id ) VALUES (" . $user_info_array["user_group"][$i] . "," . $user_info_array['user_id'] . ")";
- AdvancedConnectSql( $tmp_edit_group );
- $insert_permission = "INSERT IGNORE INTO " . $tableCollab['maintenance_users_permissions_run'] . " ( mupr_type, mupr_user_group_id) VALUES ('group', " . $user_info_array["user_group"][$i] . ")";
- $errors = AdvancedConnectSql( $insert_permission );
- }
- }
- if( $user_info_array['user_id'] == SessionHelper::GetUserID() )
- {
- $lang_index = array_search( $_SESSION['user_language'], $language_management->data["lm_lm_main_type"] ) ;
- $_SESSION[$_SESSION['user_language']]['align'] = $language_management->data["lm_lm_align"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['dir'] = $language_management->data["lm_lm_dir"][$lang_index];
- $_SESSION[$_SESSION['user_language']]['type'] = $language_management->data["lm_lm_type"][$lang_index];
- $_SESSION['user_language'] = $user_info_array["user_language"];
- $_SESSION['user_name'] = $user_info_array["user_name"];
- $_SESSION['user_fname'] = $user_info_array["first_name"];
- $_SESSION['user_lname'] = $user_info_array["last_name"];
- $_SESSION['user_role'] = $user_info_array["user_role"];
- $_SESSION['user_language'] = $user_info_array["user_language"];
- $_SESSION['user_displayed_records'] = $user_info_array["displayed_records"];
- $_SESSION['user_theme_id'] = $user_info_array["user_theme"];
- $_SESSION['user_group_id'] = implode( ",", $user_info_array["user_group"] );
- $_SESSION['sl_default_search'] = $user_info_array["sl_default_search"];
- $_SESSION['user_displayed_records'] = $user_info_array["displayed_records"];
- $this->UpdateUserStyle( $user_info_array["user_theme"] );
- $query_cond = " WHERE users.u_id = '" . SessionHelper::GetUserID() . "'";
- $this->query_joins_array = array("user_group");
- $this->members_array = array( "users.u_id","users.u_profil", "users.u_password", "users.u_name", "users.u_role_id", "users.u_first_name", "users.u_last_name", "users.u_lan", "users.u_displayed_records", "users.u_theme_id", "ug.fk_groups_g_id", "users.fk_adh_id", "users.u_color", "users.u_sort_by", "users.u_default_page", "users.u_default_search_type", "users.u_default_view", "users.u_default_file_open", "users.u_path_home_page", "users.u_auto_pagination", "users.u_sl_default_search", "users.u_is_approver" );
- $this->GetUsers( $query_cond );
- $this->FillArrayData();
- }
- }
- return $res['query_error'];
- }
- function UpdateUserStyle( $user_style )
- {
- $_SESSION['user_theme_id'] = $user_style;
- $style_preferencees_obj = new ThemePreferences();
- $style_preferencees_obj->FillThemePreferences();
- }
- /**
- * fill all privilege in session
- *
- */
- function BuildUserPrivilege()
- {
- $role_priv = new PrivilegeManagement();
- $role_query_cond .= ' WHERE rolepriv.fk_role_r_id = ' . $_SESSION['user_role'];
- $role_priv->members_array = array( "rolepriv.rp_id", "rolepriv.fk_role_r_id", "rolepriv.rp_action_code", "rolepriv.rp_privilege" );
- $role_priv->GetRolePrivileges( $role_query_cond );
- for( $i = 0 ; $i < $role_priv->count ; $i++ )
- {
- $_SESSION['privilege'][ $role_priv->data['rolepriv_fk_role_r_id'][$i] ][ $role_priv->data['rolepriv_rp_action_code'][$i] ] = $role_priv->data['rolepriv_rp_privilege'][$i];
- }
- }
- function SplitNPData( $np_data )
- {
- $np_array_data = array();
- $data = explode( ";;", $np_data );
- for( $i = 0 ; $i < count( $data ) ; $i++ )
- {
- $split_data = explode( ":", $data[$i] );
- switch ( $split_data[0] )
- {
- case "auto_user_name":
- $np_array_data[ "auto_user_name" ] = $split_data[1];
- break;
- case "auto_user_password":
- $np_array_data[ "auto_user_password" ] = $split_data[1];
- break;
- default:
- $np_array_data[ $split_data[0] ] = $split_data[1];
- break;
- }
- }
- return $np_array_data;
- }
- /**
- * Apply Function To All Users
- *
- * @param array $post_data
- */
- function ApplyFunctionsToAllUsers( $post_data )
- {
- global $tableCollab;
- $update_query = "UPDATE " . $tableCollab["users"] . " SET ";
- if( isset( $_POST['sort_by_check'] ))
- {
- $post_array['u_sort_by'] = "u_sort_by='" . $post_data['u_sort_by'] . "'";
- }
- if( isset( $_POST['displayed_record_check'] ) )
- {
- $post_array['u_displayed_records'] = "u_displayed_records='" . $post_data['displayed_records'] . "'";
- }
- if( isset( $_POST['default_open_file_check'] ) )
- {
- $post_array['u_default_file_open'] = "u_default_file_open='" . $post_data['u_default_file_open'] . "'" ;
- }
- if( isset( $_POST['default_view_check'] ) )
- {
- $post_array['u_default_view'] = "u_default_view='" . $post_data['default_view'] . "'";
- }
- if( isset( $_POST['default_page_check'] ) )
- {
- $post_array['u_default_page'] = "u_default_page='" . $post_data['default_page'] . "'";
- }
- if( isset( $_POST['default_search_check'] ) )
- {
- $post_array['default_search_check'] = "u_default_search_type='" . $post_data['default_search'] . "'";
- }
- if( isset( $_POST['themes_check'] ) )
- {
- $post_array['themes_check'] = "u_theme_id='" . $post_data['themes'] . "'";
- }
- if( isset( $_POST['keywords_check'] ) )
- {
- $my_profile_search_keywords = $post_data['my_profile_search_keywords'];
- $post_array['default_search_keywords'] = "u_default_search_keywords='" . implode("|", $my_profile_search_keywords) . "'";
- }
- $implode .= implode(',',$post_array);
- $update_query .= $implode ;
- $res = AdvancedConnectSql( $update_query );
- return $res['query_error'];
- }
- public static function MarkAsNotifiedNow()
- {
- global $tableCollab;
- $update = "UPDATE " . $tableCollab['users'] . " SET u_last_notified=NOW() WHERE u_id='" . SessionHelper::GetUserID() . "'";
- $res = AdvancedConnectSql($update);
- return $res;
- }
- public static function GetUserIfAllowedAssignJob( $user_id = 0 )
- {
- $user_id = empty($user_id) ? ( strlen( trim( SessionHelper::GetUserID() ) ) > 0 ? SessionHelper::GetUserID() : 0 ) : $user_id;
- $users_obj = new UsersManagement();
- $users_obj->members_array = array( 'users.u_allowed_assign_job' );
- $query_more = ' WHERE users.u_id=' . $user_id;
- $users_obj->GetUsers( $query_more );
- $u_allowed_assign_job = empty($users_obj->data["users_u_allowed_assign_job"][0]) ? 0 : 1;
- return $u_allowed_assign_job;
- }
- function FillNPData()
- {
- if( isset( $_SESSION['np_data'] ) && !isset( $_SESSION['np_user_id'] ) )
- {
- $np_data = $this->SplitNPData( $_SESSION['np_data'] );
- foreach ( $np_data as $key => $value )
- {
- if( $key != 'auto_user_name' && $key != 'auto_user_password' && $key != 'auto_login_user' )
- {
- $_SESSION[ $key ] = $value;
- }
- }
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement