Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
token
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wallet
token
Commits
577be8df
Commit
577be8df
authored
6 years ago
by
rlgy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
30517063
master
develop
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
70 additions
and
109 deletions
+70
-109
AdminController.php
backend/controllers/AdminController.php
+41
-64
auth.php
backend/views/admin/auth.php
+8
-23
DbManager.php
common/core/rbac/DbManager.php
+21
-22
No files found.
backend/controllers/AdminController.php
View file @
577be8df
...
...
@@ -23,10 +23,10 @@ class AdminController extends BaseController
/* 添加当前位置到cookie供后续操作调用 */
$this
->
setForward
();
$searchModel
=
new
AdminSearch
();
$searchModel
=
new
AdminSearch
();
$dataProvider
=
$searchModel
->
search
(
Yii
::
$app
->
request
->
queryParams
);
return
$this
->
render
(
'index'
,
[
'searchModel'
=>
$searchModel
,
'searchModel'
=>
$searchModel
,
'dataProvider'
=>
$dataProvider
,
]);
}
...
...
@@ -43,12 +43,12 @@ class AdminController extends BaseController
if
(
Yii
::
$app
->
request
->
isPost
)
{
/* 表单验证 */
$data
=
Yii
::
$app
->
request
->
post
(
'Admin'
);
$data
[
'reg_time'
]
=
time
();
$data
[
'reg_ip'
]
=
ip2long
(
Yii
::
$app
->
request
->
getUserIP
());
$data
=
Yii
::
$app
->
request
->
post
(
'Admin'
);
$data
[
'reg_time'
]
=
time
();
$data
[
'reg_ip'
]
=
ip2long
(
Yii
::
$app
->
request
->
getUserIP
());
$data
[
'last_login_time'
]
=
0
;
$data
[
'last_login_ip'
]
=
ip2long
(
'127.0.0.1'
);
$data
[
'update_time'
]
=
0
;
$data
[
'last_login_ip'
]
=
ip2long
(
'127.0.0.1'
);
$data
[
'update_time'
]
=
0
;
/* 表单数据加载和验证,具体验证规则在模型rule中配置 */
/* 密码单独验证,否则setPassword后密码肯定符合rule */
if
(
empty
(
$data
[
'password'
])
||
strlen
(
$data
[
'password'
])
<
6
)
{
...
...
@@ -76,62 +76,39 @@ class AdminController extends BaseController
* 用户授权
* ---------------------------------------
*/
// public function actionAuth()
// {
// /* 获取用户信息 */
// $uid = Yii::$app->request->get('uid');
// if (!is_numeric($uid) || !($model = Admin::findOne($uid)) ) {
// $this->error('操作对象不合法');
// }
//
// $auth = Yii::$app->authManager;
// if (Yii::$app->request->isPost) {
// $data = Yii::$app->request->post();
//
// //更新Fxee权限
// try {
// $ret = FxeeBusiness::updateMemberGroup($uid,isset($data['param_fxee']) ? $data['param_fxee'] : null);
// } catch (Exception $e) {
// $ret = $e->getMessage();
// }
//
// /* 用户权限组 */
// $item_name = $data['param'];
//
// /* 先删除 用户组-用户 记录 */
// $auth->revokeAll($uid);
// /* 再添加记录 */
// $role = $auth->getRole($item_name);
// $auth->assign($role, $uid);
//
// //fxee用户权限操作
//
// if ($ret == true) {
// $this->success('授权成功!', $this->getForward());
// } else if (is_string($ret)) {
// $this->error($ret);
// }
// exit;
// }
//
// $roles = $auth->getRoles();
// $group = array_keys($auth->getAssignments($uid));
//
// $one = Admin::findOne(['uid' => $uid]);
// if (isset($one['bind_uid']) && is_numeric($one['bind_uid'])) {
// $fxeeRoles = Member::getRoles();
// $fxeeGroup = Member::find()->select('group')->where(['id' => $one['bind_uid']])->scalar();
// } else {
// $fxeeRoles = $fxeeGroup = null;
// }
//
// return $this->render('auth', [
// 'model' => $model,
// 'roles' => $roles,
// 'group' => $group,
// 'fxee_roles' => $fxeeRoles,
// 'fxee_group' => $fxeeGroup,
// ]);
// }
public
function
actionAuth
()
{
/* 获取用户信息 */
$uid
=
Yii
::
$app
->
request
->
get
(
'uid'
);
if
(
!
is_numeric
(
$uid
)
||
!
(
$model
=
Admin
::
findOne
(
$uid
)))
{
$this
->
error
(
'操作对象不合法'
);
}
$auth
=
Yii
::
$app
->
authManager
;
if
(
Yii
::
$app
->
request
->
isPost
)
{
$data
=
Yii
::
$app
->
request
->
post
();
/* 用户权限组 */
$item_name
=
$data
[
'param'
];
/* 先删除 用户组-用户 记录 */
$auth
->
revokeAll
(
$uid
);
/* 再添加记录 */
$role
=
$auth
->
getRole
(
$item_name
);
$auth
->
assign
(
$role
,
$uid
);
$this
->
success
(
'授权成功!'
,
$this
->
getForward
());
}
$roles
=
$auth
->
getRoles
();
$group
=
array_keys
(
$auth
->
getAssignments
(
$uid
));
return
$this
->
render
(
'auth'
,
[
'model'
=>
$model
,
'roles'
=>
$roles
,
'group'
=>
$group
,
]);
}
}
This diff is collapsed.
Click to expand it.
backend/views/admin/auth.php
View file @
577be8df
...
...
@@ -22,40 +22,25 @@ use common\core\ActiveForm;
<div
class=
"portlet light bordered"
>
<div
class=
"portlet-body form"
>
<!-- BEGIN FORM-->
<form
action=
"
<?=
\yii\helpers\Url
::
toRoute
([
'auth'
,
'uid'
=>
$model
->
uid
])
?>
"
method=
"post"
class=
"form-aaa "
>
<form
action=
"
<?=
\yii\helpers\Url
::
toRoute
([
'auth'
,
'uid'
=>
$model
->
uid
])
?>
"
method=
"post"
class=
"form-aaa "
>
<input
name=
"_csrf"
type=
"hidden"
id=
"_csrf"
value=
"
<?=
Yii
::
$app
->
request
->
csrfToken
?>
"
>
<div
class=
"form-group"
>
后台角色
<label
style=
"color: #0d8580"
>
【查看】
</label>
<div
class=
"mt-radio-list"
>
<?php
if
(
$roles
)
foreach
(
$roles
as
$role
)
:
?>
<label
class=
"mt-radio mt-radio-outline"
>
<input
type=
"radio"
name=
"param"
value=
"
<?=
$role
->
name
?>
"
<?php
echo
in_array
(
$role
->
name
,
$group
)
?
'checked'
:
''
;
?>
/>
<span></span>
<?=
$role
->
name
?>
(
<?=
$role
->
description
?>
)
</label>
<?php
endforeach
?>
</div>
<?=
$fxee_roles
?
'<hr>fxee角色<label style="color: #858423">【操作】</label>'
:
''
?>
<div
class=
"mt-radio-list"
>
<?php
if
(
$fxee_roles
)
foreach
(
$fxee_roles
as
$k
=>
$v
)
:
?>
<label
class=
"mt-radio mt-radio-outline"
>
<input
type=
"radio"
name=
"param
_fxee"
value=
"
<?=
$k
?>
"
<?php
echo
$k
==
$fxee_group
?
'checked'
:
''
;
?>
/>
<input
type=
"radio"
name=
"param
"
value=
"
<?=
$role
->
name
?>
"
<?php
echo
in_array
(
$role
->
name
,
$group
)
?
'checked'
:
''
;
?>
/>
<span></span>
<?=
$k
?>
(
<?=
$v
?>
)
<?=
$role
->
name
?>
(
<?=
$role
->
description
?>
)
</label>
<?php
endforeach
?>
<?php
endforeach
?>
</div>
</div>
<div
class=
"form-actions"
>
<?=
Html
::
submitButton
(
'确定'
,
[
'class'
=>
'btn blue ajax-post'
,
'target-form'
=>
'form-aaa'
])
?>
<?=
Html
::
button
(
'返回'
,
[
'class'
=>
'btn '
,
'onclick'
=>
"javascript:history.go(-1);"
])
?>
</div>
<div
class=
"form-actions"
>
<?=
Html
::
submitButton
(
'确定'
,
[
'class'
=>
'btn blue ajax-post'
,
'target-form'
=>
'form-aaa'
])
?>
<?=
Html
::
button
(
'返回'
,
[
'class'
=>
'btn '
,
'onclick'
=>
"javascript:history.go(-1);"
])
?>
</div>
</form>
<!-- END FORM-->
</div>
...
...
This diff is collapsed.
Click to expand it.
common/core/rbac/DbManager.php
View file @
577be8df
<?php
namespace
common\core\rbac
;
use
yii\rbac\Item
;
...
...
@@ -12,18 +13,19 @@ class DbManager extends \yii\rbac\DbManager
* ---------------------------------------
* 当Rule不存在时添加
* 同时将auth_item添加或更新
* @param string
$name
rule名称
* @param object
$rule
规则对象
* @param string
$name
rule名称
* @param object
$rule
规则对象
* ---------------------------------------
*/
public
function
saveRule
(
$name
)
{
public
function
saveRule
(
$name
)
{
/* 判断auth_rule表是否存在 */
if
(
$rule
=
$this
->
getRule
(
$name
))
{
/* 更新 */
}
else
{
/* 添加 */
$rule
=
new
Rule
();
$rule
=
new
Rule
();
$rule
->
name
=
$name
;
$this
->
add
(
$rule
);
}
...
...
@@ -34,9 +36,9 @@ class DbManager extends \yii\rbac\DbManager
}
else
{
/* 添加 */
$item
=
new
Item
();
$item
->
name
=
$name
;
$item
->
type
=
2
;
$item
=
new
Item
();
$item
->
name
=
$name
;
$item
->
type
=
2
;
$item
->
ruleName
=
$name
;
$this
->
add
(
$item
);
}
...
...
@@ -45,11 +47,12 @@ class DbManager extends \yii\rbac\DbManager
/**
* ---------------------------------------
* 保存角色的权限分配
* @param string
$parent
角色name
* @param string
$child
权限name
* @param string
$parent
角色name
* @param string
$child
权限name
* ---------------------------------------
*/
public
function
saveChild
(
$parent
,
$child
){
public
function
saveChild
(
$parent
,
$child
)
{
/* 判断auth_item_child表是否存在 */
$parent
=
$this
->
getRole
(
$parent
);
$child
=
$this
->
getItem
(
$child
);
...
...
@@ -62,30 +65,26 @@ class DbManager extends \yii\rbac\DbManager
/**
* ---------------------------------------
* 更新auth_item
* @throws \Exception
* ---------------------------------------
*/
protected
function
updateRule
(
$name
,
$rule
)
{
if
(
$rule
->
name
!==
$name
&&
!
$this
->
supportsCascadeUpdate
())
{
$this
->
db
->
createCommand
()
->
update
(
$this
->
itemTable
,
[
'rule_name'
=>
$rule
->
name
,
'name'
=>
$rule
->
name
,
],
[
'rule_name'
=>
$name
])
->
execute
();
$this
->
db
->
createCommand
()
->
update
(
$this
->
itemTable
,
[
'rule_name'
=>
$rule
->
name
,
'name'
=>
$rule
->
name
,
],
[
'rule_name'
=>
$name
])
->
execute
();
}
$rule
->
updatedAt
=
time
();
$this
->
db
->
createCommand
()
->
update
(
$this
->
ruleTable
,
[
'name'
=>
$rule
->
name
,
'data'
=>
serialize
(
$rule
),
'name'
=>
$rule
->
name
,
'data'
=>
serialize
(
$rule
),
'updated_at'
=>
$rule
->
updatedAt
,
],
[
'name'
=>
$name
,
])
->
execute
();
],
[
'name'
=>
$name
,])
->
execute
();
$this
->
invalidateCache
();
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment