* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\textreparser; abstract class row_based_plugin extends base { /** * @var \phpbb\db\driver\driver_interface */ protected $db; /** * Constructor * * @param \phpbb\db\driver\driver_interface $db Database connection */ public function __construct(\phpbb\db\driver\driver_interface $db) { $this->db = $db; } /** * Return the name of the column that correspond to each field * * @return array */ abstract public function get_columns(); /** * Return the name of the table used by this plugin * * @return string */ abstract public function get_table_name(); /** * {@inheritdoc} */ public function get_max_id() { $columns = $this->get_columns(); $sql = 'SELECT MAX(' . $columns['id'] . ') AS max_id FROM ' . $this->get_table_name(); $result = $this->db->sql_query($sql); $max_id = (int) $this->db->sql_fetchfield('max_id'); $this->db->sql_freeresult($result); return $max_id; } /** * {@inheritdoc} */ protected function get_records_by_range($min_id, $max_id) { $sql = $this->get_records_by_range_query($min_id, $max_id); $result = $this->db->sql_query($sql); $records = $this->db->sql_fetchrowset($result); $this->db->sql_freeresult($result); return $records; } /** * Generate the query that retrieves all records for given range * * @param integer $min_id Lower bound * @param integer $max_id Upper bound * @return string SQL query */ protected function get_records_by_range_query($min_id, $max_id) { $columns = $this->get_columns(); $fields = array(); foreach ($columns as $field_name => $column_name) { if ($column_name === $field_name) { $fields[] = $column_name; } else { $fields[] = $column_name . ' AS ' . $field_name; } } $sql = 'SELECT ' . implode(', ', $fields) . ' FROM ' . $this->get_table_name() . ' WHERE ' . $columns['id'] . ' BETWEEN ' . $min_id . ' AND ' . $max_id; return $sql; } /** * {@inheritdoc} */ protected function save_record(array $record) { $columns = $this->get_columns(); $sql = 'UPDATE ' . $this->get_table_name() . ' SET ' . $columns['text'] . " = '" . $this->db->sql_escape($record['text']) . "' WHERE " . $columns['id'] . ' = ' . $record['id']; $this->db->sql_query($sql); } } ption value='topic/a'>topic/a Mageia Installer and base platform for many utilitiesThierry Vignaud [tv]
summaryrefslogtreecommitdiffstats
path: root/perl-install/security/level.pm
blob: 79879336d7f18f3e5116c1dde09e318963cdb133 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package security::level;

use strict;
use common;
use run_program;


sub level_list() {
    (
     0 => N("Disable msec"),
     1 => N("Standard"),
     2 => N("Secure"),
    );
}

sub to_string { +{ level_list() }->{$_[0]} }
sub from_string { +{ reverse level_list() }->{$_[0]} || 2 }

sub get_string() { to_string(get() || 2) }
sub get_common_list() { map { to_string($_) } (1, 2, 3, 4, 5) }

sub get() {
    ${{ getVarsFromSh("$::prefix/etc/security/msec/security.conf") }}{BASE_LEVEL}  || #- 2009.1 msec
    1;
}

sub set {
    my ($security) = @_;
    my @levelnames = ( 'none', 'standard', 'secure' );
    # use Standard level if specified level is out of range
    $security = 1 if $security > $#levelnames;
    run_program::rooted($::prefix, 'msec', '-q', '-f', @levelnames[$security]);
    run_program::rooted($::prefix, 'msecperms', '-q', '-e', '-f', @levelnames[$security]);
}

sub level_choose {
    my ($in, $security, $email) = @_;

    my %help = (
      0 => N("This level is to be used with care, as it disables all additional security
provided by msec. Use it only when you want to take care of all aspects of system security
on your own."),
      1 => N("This is the standard security recommended for a computer that will be used to connect to the Internet as a client."),
      2 => N("With this security level, the use of this system as a server becomes possible.
The security is now high enough to use the system as a server which can accept
connections from many clients. Note: if your machine is only a client on the Internet, you should choose a lower level."),
    );

    my @l = 1 .. 2;

    $in->ask_from_({ title => $::isInstall ? N("Security") : N("DrakSec Basic Options"),
             interactive_help_id => 'misc-params#draxid-miscellaneous',
           }, [
              { label => N("Please choose the desired security level"), title => 1 },
              { val => $security, list => \@l, 
                format => sub {
                    #-PO: this string is used to properly format "<security level>: <level description>"
                    N("%s: %s", to_string($_[0]), formatAlaTeX($help{$_[0]}));
                },
                type => 'list', gtk => { use_boxradio => 1 } },
                { label => N("Security Administrator:"), title => 1 },
                { label => N("Login or email:"), val => $email, },
            ],