Студопедия — Приложение Ж
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Приложение Ж






(обязательное)

 

 


Изм.
Лист
№ докум.
Подп.
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
Разраб.
Исляев Р.С.
Пров.
Заварзин С.Г.
 
 
Н. Контр.
Заварзин С.Г. чин А.В.
Утв. в д.
Пащенко Д.В.  
Программное обеспечение автоматизированной системы управления документамипредприятия. Схема БД
Литер
Листов
 
ФВТ гр. 11ВВ1  
Приложение Ж1. Подключение к базе данных

<?php

/*

odm-init.php - для инициализации переменных

* Если файл config.php не найден, то выведется

* сообщение, в котором будет предложено создать

* файл config.php.

* Файл config.php будет искаться в корневомм каталоге DocManager

*/

 

//Подключение к базе данных

$dsn = "mysql:host=". DB_HOST. ";dbname=". DB_NAME. ";charset=utf8";

try {

$pdo = new PDO($dsn, DB_USER, DB_PASS);

} catch (PDOException $e) {

print "Error!: ". $e->getMessage(). "<br/>";

die();

}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 

$GLOBALS['pdo'] = $pdo;

 

ob_start();

 

//Загрузка класса Settings

require_once ('Settings_class.php');

$settings = new Settings($pdo);

$settings->load();

 

 

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
//Общие функции

require_once('functions.php');

 

//Загрузка списка разрешенных типов файлов

require_once ('FileTypes_class.php');

$filetypes = new FileTypes_class($pdo);

$filetypes->load();

 

// Установка директории прверки. (relative to $dataDir)

$CONFIG['revisionDir'] = $GLOBALS['CONFIG']['dataDir']. 'revisionDir/';

 

// Установка директории прверки. (relative to $dataDir)

$CONFIG['archiveDir'] = $GLOBALS['CONFIG']['dataDir']. 'archiveDir/';

 

$_GET = sanitizeme($_GET);

$_REQUEST = sanitizeme($_REQUEST);

$_POST = sanitizeme($_POST);

$_SERVER = sanitizeme($_SERVER);

$_FILES = sanitizeme($_FILES);

 

Изм.
Лист
№ докум.
Подп.
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
Разраб.
Исляев Р.С.
Пров.
Заварзин С.Г.
 
 
Н. Контр.
Заварзин С.Г. чин А.В.
Утв. в д.
Пащенко Д.В.  
Программное обеспечение автоматизированной системы управления документамипредприятия. Схема БД
Литер
Листов
 
ФВТ гр. 11ВВ1  
Приложение Ж2. Создание базы данных

# MySQL dump of DocManager

# Table structure for table 'odm_access_log'

CREATE TABLE `odm_access_log` (

`file_id` int(11) NOT NULL,

`user_id` int(11) NOT NULL,

`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

`action` enum('A','B','C','V','D','M','X','I','O','Y','R') NOT NULL

) ENGINE = MYISAM;

 

# Table structure for table 'odm_admin'

CREATE TABLE odm_admin (

id int(11) unsigned default NULL,

admin tinyint(4) default NULL

) ENGINE = MYISAM;

# Dumping data for table 'odm_admin'

INSERT INTO odm_admin VALUES (1,1);

 

# Table structure for table 'odm_category'

CREATE TABLE odm_category (

id int(11) unsigned NOT NULL auto_increment,

name varchar(255) NOT NULL default '',

PRIMARY KEY (id)

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_category'

INSERT INTO odm_category VALUES (NULL,'SOP');

INSERT INTO odm_category VALUES (NULL,'Training Manual');

 

INSERT INTO odm_category VALUES (NULL,'Letter');

INSERT INTO odm_category VALUES (NULL,'Presentation');

 

# Table structure for table 'odm_data'

CREATE TABLE odm_data (

id int(11) unsigned NOT NULL auto_increment,

category int(11) unsigned NOT NULL default '0',

owner int(11) unsigned default NULL,

realname varchar(255) NOT NULL default '',

created datetime NOT NULL default '0000-00-00 00:00:00',

description varchar(255) default NULL,

comment varchar(255) default '',

status smallint(6) default NULL,

department smallint(6) unsigned default NULL,

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
default_rights tinyint(4) default NULL,

publishable tinyint(4) default NULL,

reviewer int(11) unsigned default NULL,

reviewer_comments varchar(255) default NULL,

PRIMARY KEY (id),

KEY data_idx (id,owner),

KEY id (id),

KEY id_2 (id),

KEY publishable (publishable),

KEY description (description)

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_data'

 

# Table structure for table 'odm_department'

CREATE TABLE odm_department (

id int(11) unsigned NOT NULL auto_increment,

name varchar(255) NOT NULL default '',

PRIMARY KEY (id)

) ENGINE = MYISAM;

 

 

# Dumping data for table 'odm_department'

INSERT INTO odm_department VALUES (NULL,'Information Systems');

 

# Table structure for table 'odm_dept_perms'
Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  

CREATE TABLE odm_dept_perms (

fid int(11) unsigned default NULL,

dept_id int(11) unsigned default NULL,

rights tinyint(4) NOT NULL default '0',

KEY rights (rights),

KEY dept_id (dept_id),

KEY fid (fid)

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_dept_perms'

 

# Table structure for table 'odm_dept_reviewer'

CREATE TABLE odm_dept_reviewer (

dept_id int(11) unsigned default NULL,

user_id int(11) unsigned default NULL

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_dept_reviewer'

INSERT INTO odm_dept_reviewer VALUES (1,1);

 

# Table structure for table 'odm_log'

CREATE TABLE odm_log (

id int(11) unsigned NOT NULL default '0',

modified_on datetime NOT NULL default '0000-00-00 00:00:00',

modified_by varchar(25) default NULL,

note text,

revision varchar(255) default NULL,

KEY id (id),

KEY modified_on (modified_on)

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_log'

 

# Table structure for table 'odm_rights'

CREATE TABLE odm_rights (

RightId tinyint(4) default NULL,

Description varchar(255) default NULL

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_rights'

INSERT INTO odm_rights VALUES (0,'none');

INSERT INTO odm_rights VALUES (1,'view');

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
INSERT INTO odm_rights VALUES (-1,'forbidden');

INSERT INTO odm_rights VALUES (2,'read');

INSERT INTO odm_rights VALUES (3,'write');

INSERT INTO odm_rights VALUES (4,'admin');

 

# Table structure for table 'odm_user'

CREATE TABLE odm_user (

id int(11) unsigned NOT NULL auto_increment,

username varchar(25) NOT NULL default '',

password varchar(50) NOT NULL default '',

department int(11) unsigned default NULL,

phone varchar(20) default NULL,

Email varchar(50) default NULL,

last_name varchar(255) default NULL,

first_name varchar(255) default NULL,

pw_reset_code char(32) default NULL,

can_add tinyint(1) NULL DEFAULT 1,

can_checkin tinyint(1) NULL DEFAULT 1,

PRIMARY KEY (id)

) ENGINE = MYISAM;

# Dumping data for table 'odm_user'

INSERT INTO odm_user VALUES (NULL,'admin',md5('admin'),1,'5555551212','[email protected]','User','Admin','', 1, 1);

 

# Table structure for table 'odm_user_perms'
Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  

CREATE TABLE odm_user_perms (

fid int(11) unsigned default NULL,

uid int(11) unsigned NOT NULL default '0',

rights tinyint(4) NOT NULL default '0',

KEY user_perms_idx (fid,uid,rights),

KEY fid (fid),

KEY uid (uid),

KEY rights (rights)

) ENGINE = MYISAM;

 

# Dumping data for table 'odm_user_perms'

 

# New User Defined Fields Table

#

# field_type describes what type of UDF this is. At the momment

# the valid values are:

#

# 1 = Drop down style list

# 2 = Radio Buttons

#

# table_name names the database table where the allow values are listed

#

# display_name is the label shown to the user

 

CREATE TABLE odm_udf

(

id int(11) auto_increment unique,

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
table_name varchar(50),

display_name varchar(16),

field_type int

) ENGINE = MYISAM;

CREATE TABLE IF NOT EXISTS odm_odmsys

(

id int(11) auto_increment unique,

sys_name varchar(16),

sys_value varchar(255)

) ENGINE = MYISAM;

INSERT INTO odm_odmsys VALUES (NULL,'version','1.3.0');

CREATE TABLE IF NOT EXISTS `odm_settings` (

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,

`name` VARCHAR(255) NOT NULL,

`value` VARCHAR(255) NOT NULL,

`description` VARCHAR(255) NOT NULL,

`validation` VARCHAR(255) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE (`name`)

) ENGINE = MYISAM;

INSERT INTO `odm_settings` VALUES(NULL, 'title', 'Хранилище документов', 'Это заголовок вкладки в окне браузера', 'maxsize=255');

INSERT INTO `odm_settings` VALUES(NULL, 'authen', 'mysql', 'Проверка подлинности MySQL', '');

INSERT INTO `odm_settings` VALUES(NULL, 'site_mail', 'root@localhost', 'Адрес электронной почты администратора этого сайта', 'email|maxsize=255|req');

INSERT INTO `odm_settings` VALUES(NULL, 'root_id', '1', 'Эта переменная устанавливает пользователю неограниченные права доступа. Он будет иметь доступ ко всем файлам и иметь права на все операции', 'num|req');

INSERT INTO `odm_settings` VALUES(NULL, 'dataDir', '/var/www/document_repository/', 'Расположение хранилища файлов. В идеале оно должно быть вне корневой папки веб-сервера. Убедитесь, что сервер имеет доступ на чтение/запись файлов в этой папке! (Examples: Linux - /var/www/document_repository/: Windows - c:/document_repository/', 'maxsize=255');

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
INSERT INTO `odm_settings` VALUES(NULL, 'max_filesize', '5000000', 'Установите максимальный размер загружаемых файлов', 'num|maxsize=255');

INSERT INTO `odm_settings` VALUES(NULL, 'revision_expiration', '90', 'Эта переменная устанавливает период(количество дней), за который документ должен быть пересмотрен', 'num|maxsize=255');

INSERT INTO `odm_settings` VALUES(NULL, 'file_expired_action', '1', 'Условие истечения срока файла. (1)Удаление из списка файлов, пока не продлен срок; (2)Показать в списке файлов, но не проверять; (3)Оповестить проверяющего(email); (4)Ничего не делать', 'num');

INSERT INTO `odm_settings` VALUES(NULL, 'authorization', 'True', 'True/False. Если значение True, каждый документ должен быть рассмотрен администратором, прежде чем его увидят остальные пользователи. Если значение False, то все добавленные файлы заново проверяются и сразу будут в списке', 'bool');

INSERT INTO `odm_settings` VALUES(NULL, 'allow_signup', 'False', 'Разрешить регистрацию?', 'bool');

INSERT INTO `odm_settings` VALUES(NULL, 'allow_password_reset', 'False', 'Разрешить пользователям сброс их забытого пароля?', 'bool');

INSERT INTO `odm_settings` VALUES(NULL, 'theme', 'tweeter', 'Тема оформления', '');

INSERT INTO `odm_settings` VALUES(NULL, 'language', 'russian', 'Язык интерфейса', 'alpha|req');

INSERT INTO `odm_settings` VALUES(NULL, 'base_url', 'http://localhost/docmanager', 'URL сайта. Не обязательно использовать символы \"/\"', 'url');

INSERT INTO `odm_settings` VALUES(NULL, 'max_query', '500', 'Установить максимальное количество строк списка файлов', 'num');

CREATE TABLE IF NOT EXISTS `odm_filetypes` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`type` VARCHAR(255) NOT NULL,

`active` TINYINT(4) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE = MYISAM;

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/gif', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'text/html', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'text/plain', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/pdf', 1);

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
INSERT INTO `odm_filetypes` VALUES(NULL, 'image/pdf',1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/x-pdf', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/msword', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/jpeg', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/pjpeg', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/png', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/msexcel', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/msaccess', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'text/richtxt', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/mspowerpoint', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/octet-stream', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/x-zip-compressed', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/x-zip', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/zip', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/tiff', 1);

INSERT INTO `odm_filetypes` VALUES(NUll, 'image/tif', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.ms-powerpoint', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.ms-excel', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.chart', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.chart-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.formula', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.formula-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.graphics', 1);

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.graphics-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.image', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.image-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.presentation', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.presentation-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.spreadsheet', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.spreadsheet-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.text', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.text-master', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.text-template', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'application/vnd.oasis.opendocument.text-web', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'text/csv', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'audio/mpeg', 0);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/x-dwg', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/x-dfx', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'drawing/x-dwf', 1);

INSERT INTO `odm_filetypes` VALUES(NULL, 'image/svg', 1);

 

Изм.
Лист
№ докум.
Подп.
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
Разраб.
Исляев Р.С.
Пров.
Заварзин С.Г.
 
 
Н. Контр.
Заварзин С.Г. чин А.В.
Утв. в д.
Пащенко Д.В.  
Программное обеспечение автоматизированной системы управления документамипредприятия. Схема БД
Литер
Листов
 
ФВТ гр. 11ВВ1  
Приложение Ж3. Информация о пользователях

<?php

 

//User_class.php - информация о пользователях

 

if(!defined('User_class'))

{

define('User_class', 'true', false);

 

class User extends databaseData

{

var $root_id;

var $id;

var $username;

var $first_name;

var $last_name;

var $email;

var $phone;

var $department;

var $pw_reset_code;

var $can_add;

var $can_checkin;

 

* @param int $id

* @param PDO $connection

 

 

function User($id, PDO $connection)

{

$this->root_id = $GLOBALS['CONFIG']['root_id'];

$this->field_name = 'username';

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
$this->field_id = 'id';

$this->tablename = $GLOBALS['CONFIG']['db_prefix']. $this->TABLE_USER;

$this->result_limit = 1; //there is only 1 user with a certain user_name or user_id

 

databaseData::setTableName($this->TABLE_USER);

databaseData::databaseData($id, $connection);

 

$query = "

SELECT

id,

username,

department,

phone,

email,

last_name,

first_name,

pw_reset_code,

can_add,

can_checkin

FROM

{$GLOBALS['CONFIG']['db_prefix']}user

WHERE

id =:id";

$stmt = $connection->prepare($query);

$stmt->execute(array(':id' => $this->id));

$result = $stmt->fetch();

 

 

list(

$this->id,

$this->username,

$this->department,

$this->phone,

$this->email,

$this->last_name,

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
$this->first_name,

$this->pw_reset_code,

$this->can_add,

$this->can_checkin

) = $result;

}

 

/**

* Return department name for current user

* @return string

*/

function getDeptName()

{

$query = "

SELECT

d.name

FROM

{$GLOBALS['CONFIG']['db_prefix']}department d,

{$GLOBALS['CONFIG']['db_prefix']}user u

WHERE

u.id =:id

AND

u.department = d.id";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':id' => $this->id

));

$result = $stmt->fetchColumn();

 

return $result;

}

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  


/*

* Return department ID for current user

* @return string

*/

function getDeptId()

{

return $this->department;

 

}

 

/*

* Return an array of publishable documents

* @return array

* @param object $publishable

*/

function getPublishedData($publishable)

{

$data_published = array();

$index = 0;

$query = "

SELECT

d.id

FROM

{$GLOBALS['CONFIG']['db_prefix']}data d,

{$GLOBALS['CONFIG']['db_prefix']}user u

WHERE

d.owner =:id

AND

u.id = d.owner

AND

d.publishable =:publishable ";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':publishable' => $publishable,

':id' => $this->id

));

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
$result = $stmt->fetchAll();

 

foreach($result as $row) {

$data_published[$index] = $row;

$index++;

}

return $data_published;

}

 

/**

* Check whether user from object has Admin rights

* @return Boolean

*/

function isAdmin()

{

if ($this->isRoot())

{

return true;

}

$query = "

SELECT

admin

FROM

{$GLOBALS['CONFIG']['db_prefix']}admin

WHERE

id =:id

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
':id' => $this->id

));

$result = $stmt->fetchColumn();

 

if($stmt->rowCount()!=1)

{

return false;

}

 

return $result;

}

 

/**

* Check whether user from object is root

* @return bool

*/

function isRoot()

{

return ($this->root_id == $this->getId());

}

 

/**

* @return boolean

*/

function canAdd()

{

if($this->isAdmin()) {

return true;

}

if($this->can_add) {

return true;

}

return false;

}

 

/**

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
* @return boolean

*/

function canCheckIn()

{

if($this->isAdmin()) {

return true;

}

if($this->can_checkin) {

return true;

}

return false;

}

 

/**

* @return string

*/

function getPassword()

{

$query = "

SELECT

password

FROM

$this->tablename

WHERE

id =:id

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(':id' => $this->id));

$result = $stmt->fetchColumn();

 

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
if($stmt->rowCount()!=1)

{

header('Location:'. $GLOBALS['CONFIG']['base_url']. 'error.php?ec=14');

exit;

}

 

return $result;

 

}

 

/**

* @param string $non_encrypted_password

* @return bool

*/

function changePassword($non_encrypted_password)

{

$query = "

UPDATE

$this->tablename

SET

password = md5(:non_encrypted_password)

WHERE

id =:id

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':non_encrypted_password'=> $non_encrypted_password,

':id' => $this->id

));

return true;

}

 

/**

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
* @param string $non_encrypted_password

* @return bool

*/

function validatePassword($non_encrypted_password)

{

$query = "

SELECT

username

FROM

$this->tablename

WHERE

id =:id

AND

password = md5(:non_encrypted_password)

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':non_encrypted_password' => $non_encrypted_password,

':id' => $this->id

));

if($stmt->rowCount() == 1) {

return true;

} else {

// Check the old password() style user password

$query = "

SELECT

username

FROM

$this->tablename

WHERE

id =:id

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
AND

password = password(:non_encrypted_password)

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':non_encrypted_password'=> $non_encrypted_password,

':id' => $this->id

));

if($stmt->rowCount() == 1) {

return true;

}

}

return false;

}

 

/**

* @param string $new_name

* @return bool

*/

function changeName($new_name)

{

$query = "

UPDATE

$this->tablename

SET

username =:new_name

WHERE

id =:id

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':new_name' => $new_name,

':id' => $this->id

));

return true;

}

 

/**

* Determine if the current user is a reviewer or not

* @return boolean

*/

function isReviewer()

{

// If they are an admin, they can review

if($this->isAdmin()) {

return true;

}

 

// Lets see if this non-admin user has a department they can review for, if so, they are a reviewer

$query = "

SELECT

dept_id

FROM

{$GLOBALS['CONFIG']['db_prefix']}dept_reviewer

WHERE

user_id =:id

";

$stmt = $this->connection->prepare($query);

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
$stmt->execute(array(

':id' => $this->id

));

if($stmt->rowCount() > 0) {

return true;

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
} else {

return false;

}

}

 

/**

* Determine if the current user is a reviewer for a specific ID

* @param int $file_id

* @return boolean

*/

function isReviewerForFile($file_id)

{

$query = "SELECT

d.id

FROM

{$GLOBALS['CONFIG']['db_prefix']}data as d,

{$GLOBALS['CONFIG']['db_prefix']}dept_reviewer as dr

WHERE

 

dr.dept_id = d.department AND

dr.user_id =:user_id AND

d.department = dr.dept_id AND

d.id =:file_id

";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':user_id' => $this->id,

':file_id' => $file_id

));

 

$num_rows = $stmt->rowCount();

if($num_rows < 1)

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
{

return false;

}

return true;

}

 

/**

* this functions assume that you are an admin thus allowing you to review all departments

* @return array

*/

function getAllRevieweeIds()

{

if($this->isAdmin())

{

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}$this->TABLE_DATA WHERE publishable = 0";

$stmt = $this->connection->prepare($query);

$stmt->execute(array());

$result = $stmt->fetchAll();

 

$file_data = array();

$index = 0;

foreach($result as $row) {

$file_data[$index] = $row[0];

$index++;

}

 

return $file_data;

}

}

 

/**

* getRevieweeIds - Return an array of files that need reviewing under this person

* @return array

*/

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
function getRevieweeIds()

{

if($this->isReviewer())

{

// Which departments can this user review?

$query = "SELECT dept_id FROM {$GLOBALS['CONFIG']['db_prefix']}$this->TABLE_DEPT_REVIEWER WHERE user_id =:id";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':id' => $this->id

));

$result = $stmt->fetchAll();

 

$num_depts = $stmt->rowCount();

$index = 0;

// Build the query

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}data WHERE (";

foreach($result as $row) {

$dept = $row['dept_id'];

if($index!= $num_depts -1)

{

$query = $query. " department =:dept OR ";

}

else

{

$query = $query. " department =:dept)";

}

$index++;

}

$query = $query. " AND publishable = 0";

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  


$stmt = $this->connection->prepare($query);

$stmt->execute(array(':dept' => $dept));

$result = $stmt->fetchAll();

 

$file_data = array();

$num_files = $stmt->rowCount();

 

for($index = 0; $index< $num_files; $index++)

{

$fid = $result[$index]['id'];

$file_data[$index] = $fid;

}

return $file_data;

}

}

 

/**

* @return array

*/

function getAllRejectedFileIds()

{

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}$this->TABLE_DATA WHERE publishable = '-1'";

$stmt = $this->connection->prepare($query);

$stmt->execute();

$result = $stmt->fetchAll();

 

$file_data = array();

$num_files = $stmt->rowCount();

 

for($index = 0; $index< $num_files; $index++)

{

list($fid) = $result[$index];

$file_data[$index] = $fid;

}

return $file_data;

}

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  


/**

* @return array

*/

function getRejectedFileIds()

{

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}data WHERE publishable = '-1' and owner =:id";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':id' => $this->id

));

$result = $stmt->fetchAll();

 

$file_data = array();

$num_files = $stmt->rowCount();

 

for($index = 0; $index< $num_files; $index++)

{

list($fid) = $result[$index];

$file_data[$index] = $fid;

}

return $file_data;

}

 

/**

* @return array

*/

function getExpiredFileIds()

{

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}data WHERE status = -1 AND owner =:id";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':id' => $this->id

));

$result = $stmt->fetchAll();

 

$len = $stmt->rowCount();

$file_data = array();

 

for($index = 0; $index< $len; $index++)

{

list($fid) = $result[$index];

$file_data[$index] = $fid;

}

return $file_data;

}

 

/**

* @return int

*/

function getNumExpiredFiles()

{

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}data WHERE status =- 1 AND owner =:id";

$stmt = $this->connection->prepare($query);

$stmt->execute(array(

':id' => $this->id

));

return $stmt->rowCount();

}

 

/**

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
* @return mixed

*/

function getEmailAddress()

{

return $this->email;

}

 

/**

* @return mixed

*/

function getPhoneNumber()

{

return $this->phone;

}

 

/**

* /Return full name array where array[0]=firstname and array[1]=lastname

* @return mixed

*/

function getFullName()

{

$full_name[0] = $this->first_name;

$full_name[1] = $this->last_name;

 

return $full_name;

}

 

/**

* Return username of current user

* @return mixed

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  
*/

function getUserName()

{

return $this->username;

}

 

/**

* Return list of checked out files to root

* @return array

*/

function getCheckedOutFiles()

{

if ($this->isRoot())

{

$query = "SELECT id FROM {$GLOBALS['CONFIG']['db_prefix']}data WHERE status > 0";

$stmt = $this->connection->prepare($query);

$stmt->execute();

$result = $stmt->fetchAll();

 

$len = $stmt->rowCount();

$file_data = array();

for ($index = 0; $index < $len; $index++)

{

list($fid) = $result[$index];

$file_data[$index] = $fid;

}

return $file_data;

}

}

Изм .
Лист
№докум .
Подпись
Дата
Лист
 
ПГУ 1.09.03.01.13.001 ПЗ  


/**

* getAllUsers - Returns an array of all the active users

* @param $pdo

* @return array

*/

public static function getAllUsers($pdo)

{

$query = "SELECT id, last_name, first_name FROM {$GLOBALS['CONFIG']['db_prefix']}user ORDER BY last_name";

$stmt = $pdo->prepare($query);

$stmt->execute();

$result = $stmt->fetchAll();

foreach($result as $row) {

$userListArray[] = $row;

}

return $userListArray;

}

 

}

}

 







Дата добавления: 2015-08-30; просмотров: 403. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость...

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия