Skip to content

Commit

Permalink
Add some feature for User/Group management
Browse files Browse the repository at this point in the history
  • Loading branch information
hayakawa committed Nov 23, 2014
1 parent b206dce commit 16eaaef
Show file tree
Hide file tree
Showing 2 changed files with 144 additions and 4 deletions.
29 changes: 28 additions & 1 deletion risoluto/lib/vendor/Risoluto/Auth.php
Expand Up @@ -188,6 +188,20 @@ public static function callProviderMethod($operation, array $option = array())
}
break;


// ユーザ変更(No使用)
case 'modUserByNo':
// パラメタのチェック
if (isset($option['no']) and isset($option['userid']) and isset($option['username']) and isset($option['password']) and isset($option['groupno'])) {
// パスワードをハッシュ化したのちメソッドをコール
$option['password'] = self::getEncPass($option['password']);
/** @noinspection PhpUndefinedMethodInspection */
$retval = $provider->doOperation($operation, $option);
} else {
$retval = false;
}
break;

// グループ追加/変更
case 'addGroup': // FALL THRU
case 'modGroup':
Expand All @@ -200,6 +214,17 @@ public static function callProviderMethod($operation, array $option = array())
}
break;

// グループ変更(No使用)
case 'modGroupByNo':
// パラメタのチェック
if (isset($option['no']) and isset($option['groupid']) and isset($option['groupname'])) {
/** @noinspection PhpUndefinedMethodInspection */
$retval = $provider->doOperation($operation, $option);
} else {
$retval = false;
}
break;

// ユーザ削除/情報表示
case 'delUser': // FALL THRU
case 'showUser':
Expand All @@ -224,7 +249,9 @@ public static function callProviderMethod($operation, array $option = array())
}
break;

// ユーザ/グループNo表示
// ユーザ/グループNo削除/表示
case 'delUserByNo':
case 'delGroupByNo':
case 'showUserByNo':
case 'showGroupByNo':
// パラメタのチェック
Expand Down
119 changes: 116 additions & 3 deletions risoluto/lib/vendor/Risoluto/AuthDb.php
Expand Up @@ -241,7 +241,6 @@ private function getSqlModUser($tablename)
return $sql;
}


/**
* getSqlModGroup()
*
Expand All @@ -267,6 +266,60 @@ private function getSqlModGroup($tablename)
return $sql;
}

/**
* getSqlModUserByNo()
*
* ユーザ情報変更のためのSQLを生成する(Noでの更新用)
*
* @access private
*
* @param string $tablename ユーザ情報テーブル名
*
* @return SQL
*/
private function getSqlModUserByNo($tablename)
{
$sql = <<<END_OF_SQL
UPDATE $tablename
SET `modified_at` = now()
, `modified_by` = :by_who
, `userid` = :userid
, `username` = :username
, `password` = :password
, `groupno` = :groupno
, `status` = :status
WHERE `no` = :no;
END_OF_SQL;

return $sql;
}

/**
* getSqlModGroupByNo()
*
* グループ情報変更のためのSQLを生成する(Noでの更新用)
*
* @access private
*
* @param string $tablename ユーザ情報テーブル名
*
* @return 初期化用SQL
*/
private function getSqlModGroupByNo($tablename)
{
$sql = <<<END_OF_SQL
UPDATE $tablename
SET `modified_at` = now()
, `modified_by` = :by_who
, `groupid` = :groupid
, `groupname` = :groupname
, `status` = :status
WHERE `no` = :no;
END_OF_SQL;

return $sql;
}

/**
* getSqlDelUser()
*
Expand All @@ -288,11 +341,10 @@ private function getSqlDelUser($tablename)
return $sql;
}


/**
* getSqlDelGroup()
*
* グループ情報削除のためのSQLを生成する
* グループ情報削除のためのSQLを生成する(Noでの削除用)
*
* @access private
*
Expand All @@ -310,6 +362,27 @@ private function getSqlDelGroup($tablename)
return $sql;
}

/**
* getSqlDelUserGroupByNo()
*
* ユーザ/グループ情報削除のためのSQLを生成する(Noでの削除用)
*
* @access private
*
* @param string $tablename ユーザ情報テーブル名
*
* @return 初期化用SQL
*/
private function getSqlDelUserGroupByNo($tablename)
{
$sql = <<<END_OF_SQL
DELETE FROM $tablename
WHERE `no` = :no;
END_OF_SQL;

return $sql;
}

/**
* getSqlShowUserAll()
*
Expand Down Expand Up @@ -532,6 +605,30 @@ private function getParams($type, $option)
);
break;

// ユーザ更新(No使用)向け
case 'UserModByNo':
$retval = array(
array('id' => ':by_who', 'value' => \Risoluto\Text::checkFalseVal($option['by_who'], 'Risoluto'), 'type' => \PDO::PARAM_STR),
array('id' => ':no', 'value' => $option['no'], 'type' => \PDO::PARAM_INT),
array('id' => ':userid', 'value' => $option['userid'], 'type' => \PDO::PARAM_STR),
array('id' => ':username', 'value' => $option['username'], 'type' => \PDO::PARAM_STR),
array('id' => ':password', 'value' => $option['password'], 'type' => \PDO::PARAM_STR),
array('id' => ':groupno', 'value' => $option['groupno'], 'type' => \PDO::PARAM_INT),
array('id' => ':status', 'value' => \Risoluto\Text::checkFalseVal($option['status'], 1, true), 'type' => \PDO::PARAM_INT)
);
break;

// グループ更新(No使用)向け
case 'GroupModByNo':
$retval = array(
array('id' => ':by_who', 'value' => \Risoluto\Text::checkFalseVal($option['by_who'], 'Risoluto'), 'type' => \PDO::PARAM_STR),
array('id' => ':no', 'value' => $option['no'], 'type' => \PDO::PARAM_INT),
array('id' => ':groupid', 'value' => $option['groupid'], 'type' => \PDO::PARAM_STR),
array('id' => ':groupname', 'value' => $option['groupname'], 'type' => \PDO::PARAM_STR),
array('id' => ':status', 'value' => \Risoluto\Text::checkFalseVal($option['status'], 1, true), 'type' => \PDO::PARAM_INT)
);
break;

// ユーザIDのみ
case 'UserID':
$retval = array(
Expand Down Expand Up @@ -701,6 +798,14 @@ public function doOperation($operation, array $option = array())
$get_data = $instance->doQuery($this->getSqlModGroup($info['grouptable']), $this->getParams('GroupAddMod', $option));
break;

case 'modUserByNo':
$get_data = $instance->doQuery($this->getSqlModUserByNo($info['usertable']), $this->getParams('UserModByNo', $option));
break;

case 'modGroupByNo':
$get_data = $instance->doQuery($this->getSqlModGroupByNo($info['grouptable']), $this->getParams('GroupModByNo', $option));
break;

case 'delUser':
$get_data = $instance->doQuery($this->getSqlDelUser($info['usertable']), $this->getParams('UserID', $option));
break;
Expand All @@ -709,6 +814,14 @@ public function doOperation($operation, array $option = array())
$get_data = $instance->doQuery($this->getSqlDelGroup($info['grouptable']), $this->getParams('GroupID', $option));
break;

case 'delUserByNo':
$get_data = $instance->doQuery($this->getSqlDelUserGroupByNo($info['usertable']), $this->getParams('No', $option));
break;

case 'delGroupByNo':
$get_data = $instance->doQuery($this->getSqlDelUserGroupByNo($info['grouptable']), $this->getParams('No', $option));
break;

case 'showUser':
$get_data = $instance->doQuery($this->getSqlShowUser($info['usertable']), $this->getParams('UserID', $option));
break;
Expand Down

0 comments on commit 16eaaef

Please sign in to comment.