package DatabaseObject @ISA = qw() sub Name return $ModuleName; sub Explanation return $ModuleExplanation; sub Privileges return "$Privilege,$DownloadPrivilege,$ShowPasswordPrivilege"; sub new my ($module, $modulename, $privilege, $downloadprivilege, $minimumpasttime) = @_; # $this->SUPER::new( return $this; sub DESTROY my $this = shift; $this->SUPER::DESTROY( sub GetLinkString my ($this, $App, $pParams, $key, $pHash, $label, $target, $dir, $filename, $path, $NextAction) = @_; return "$label"; return "{ScriptPath}?Action=$key&sn=$pHash->{sn}&$Option\" target=\"$target\">$label"; return "Error in ConfApp3::GetLinkString: Invalid key [$key]"; sub GetParameterHash my ($this) = @_; return {}; sub IsOpen my ($this, $App, $pParams, $IsPrint) = @_; return $App->HasPrivilege($Privilege, $IsPrint); return 1 if($App->HasPrivilege($Privilege, $IsPrint)); return 1 if($App->HasPrivilege('DownloadDBDump', $IsPrint)); return 0; sub CanDownload my ($this, $App, $pParams, $IsPrint) = @_; return $App->HasPrivilege($DownloadPrivilege, $IsPrint); sub ShowMenu my ($this, $App, $pParams, $ProgramPath, $BaseOption) = @_; return if(!$this->IsOpen($App, $pParams, 0)); sub ShowSubMenu my ($this, $App, $pParams, $ShowMenu) = @_; return $this->ShowPage($App, $pParams, $ShowMenu); sub ShowPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return if(!$CanDBManage and !$CanDownloadDBDump); sub DownloadBackupCSV my ($this, $App, $pParams) = @_; return if(!$App->HasPrivilege('DownloadDBDump', 1)); return if(!$this->IsOpen($App, $pParams)); sub ShowBackupCSVPage my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams) and !$App->HasPrivilege('DownloadDBDump', 0)); return if(!$this->IsOpen($App, $pParams)); return if(!$this->CanDownload($App, $pParams)); sub DownloadDBDumpFile my ($this, $App, $pParams) = @_; return if(!$App->HasPrivilege('DownloadDBDump', 0)); return if(!$this->CanDownload($App, $pParams)); sub ExecuteDBDump my ($this, $App, $pParams, $IsPrint, $CheckPeriod) = @_; return; return -1 if(!$this->IsOpen($App, $pParams, $IsPrint) and !$CanExecuteDBDump); return -2; return -3 if($diff < $MinimumPastTime); return; return 1; sub ShowDBStructureDumpPage my ($this, $App, $pParams) = @_; sub ShowDBDumpPage my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams) or $App->HasPrivilege('DownloadDBDump', 0)); return if(!$this->CanDownload($App, $pParams)); return if(!$App->HasPrivilege('ManageDB', 1) and !$App->HasPrivilege('DownloadDBDump', 1)); return; sub ShowUpdateActiveAccountPage my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); sub RemoveNULLPassword my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowRemoveNULLPasswordPage my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); sub ExecuteSQL my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return if(!defined $ret); sub AddSchedules my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowAddSchedulesPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return; sub OpenDB my ($this, $App, $pParams, $DBMName, $DBServer, $DBUser, $DBPassword, $DBName, $IsPrint) = @_; return undef; return $DB; sub ExecuteSimpleSQLPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return if(!$DB); return if(!defined $ret); sub ShowSimpleSQLPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return; sub ShowDatabaseInfPage my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowSQLPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowMySQLTips my ($this, $App, $pParams, $ShowMenu) = @_; sub ShowDBDataPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowDatabaseEditForm my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); sub DatabaseStructures my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); sub DatabaseStructuresByDESC my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); sub ShowSyncDBPage my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams)); return; sub Sync my ($this, $App, $pParams) = @_; return if(!$this->IsOpen($App, $pParams)); return; return; sub SynchronizeDBs my ($this, $App, $pParams, $SourceDB, $TargetDB, $UsersTableName, $ScheduleTableName, $MessageTableName) = @_; sub CorrectCharCode my ($this, $App, $pParams, $ShowMenu) = @_; return if(!$this->IsOpen($App, $pParams));