Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpnSense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
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
Kulya
OpnSense
Commits
b2a33bee
Commit
b2a33bee
authored
Nov 27, 2015
by
Ad Schellevis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(legacy) refactor system_groupmanager_addprivs.php
parent
10df2a3d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
157 deletions
+104
-157
system_groupmanager_addprivs.php
src/www/system_groupmanager_addprivs.php
+104
-157
No files found.
src/www/system_groupmanager_addprivs.php
View file @
b2a33bee
...
...
@@ -32,189 +32,136 @@ function cpusercmp($a, $b)
return
strcasecmp
(
$a
[
'name'
],
$b
[
'name'
]);
}
function
admin_groups_sort
()
{
global
$config
;
if
(
!
is_array
(
$config
[
'system'
][
'group'
]))
{
return
;
}
usort
(
$config
[
'system'
][
'group'
],
"cpusercmp"
);
}
require_once
(
"guiconfig.inc"
);
$pgtitle
=
array
(
gettext
(
'System'
),
gettext
(
'Groups'
),
gettext
(
'Privileges'
));
if
(
is_numericint
(
$_GET
[
'groupid'
]))
{
$groupid
=
$_GET
[
'groupid'
];
}
if
(
isset
(
$_POST
[
'groupid'
])
&&
is_numericint
(
$_POST
[
'groupid'
]))
{
$groupid
=
$_POST
[
'groupid'
];
}
$a_group
=
&
$config
[
'system'
][
'group'
][
$groupid
];
if
(
!
is_array
(
$a_group
))
{
redirectHeader
(
"system_groupmanager.php?id=
{
$groupid
}
"
);
exit
;
}
if
(
!
is_array
(
$a_group
[
'priv'
]))
{
$a_group
[
'priv'
]
=
array
();
}
if
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'GET'
)
{
if
(
isset
(
$config
[
'system'
][
'group'
][
$_GET
[
'groupid'
]]))
{
$groupid
=
$_GET
[
'groupid'
];
$a_group
=
&
$config
[
'system'
][
'group'
][
$groupid
];
}
else
{
redirectHeader
(
"system_groupmanager.php"
);
exit
;
}
}
elseif
(
$_SERVER
[
'REQUEST_METHOD'
]
===
'POST'
)
{
if
(
isset
(
$config
[
'system'
][
'group'
][
$_POST
[
'groupid'
]]))
{
$groupid
=
$_POST
[
'groupid'
];
$a_group
=
&
$config
[
'system'
][
'group'
][
$groupid
];
if
(
$_POST
)
{
unset
(
$input_errors
);
$pconfig
=
$_POST
;
$input_errors
=
array
();
$pconfig
=
$_POST
;
/* input validation */
$reqdfields
=
explode
(
" "
,
"sysprivs"
);
$reqdfieldsn
=
array
(
gettext
(
"Selected priveleges"
));
/* input validation */
$reqdfields
=
explode
(
" "
,
"sysprivs"
);
$reqdfieldsn
=
array
(
gettext
(
"Selected priveleges"
));
do_input_validation
(
$_POST
,
$reqdfields
,
$reqdfieldsn
,
$input_errors
);
do_input_validation
(
$_POST
,
$reqdfields
,
$reqdfieldsn
,
$input_errors
);
if
(
!
$input_errors
)
{
if
(
!
is_array
(
$pconfig
[
'sysprivs'
]))
{
$pconfig
[
'sysprivs'
]
=
array
();
}
if
(
count
(
$input_errors
)
==
0
)
{
if
(
!
is_array
(
$pconfig
[
'sysprivs'
]))
{
$pconfig
[
'sysprivs'
]
=
array
();
}
if
(
!
count
(
$a_group
[
'priv'
]))
{
$a_group
[
'priv'
]
=
$pconfig
[
'sysprivs'
];
}
else
{
$a_group
[
'priv'
]
=
array_merge
(
$a_group
[
'priv'
],
$pconfig
[
'sysprivs'
]);
}
if
(
!
isset
(
$a_group
[
'priv'
])
||
!
count
(
$a_group
[
'priv'
]))
{
$a_group
[
'priv'
]
=
$pconfig
[
'sysprivs'
];
}
else
{
$a_group
[
'priv'
]
=
array_merge
(
$a_group
[
'priv'
],
$pconfig
[
'sysprivs'
]);
}
if
(
is_array
(
$a_group
[
'member'
]))
{
foreach
(
$a_group
[
'member'
]
as
$uid
)
{
$user
=
getUserEntryByUID
(
$uid
);
if
(
$user
)
{
local_user_set
(
$user
);
if
(
is_array
(
$a_group
[
'member'
]))
{
foreach
(
$a_group
[
'member'
]
as
$uid
)
{
$user
=
getUserEntryByUID
(
$uid
);
if
(
$user
)
{
local_user_set
(
$user
);
}
}
}
}
admin_groups_sort
();
$retval
=
write_config
();
$savemsg
=
get_std_save_message
();
if
(
isset
(
$config
[
'system'
][
'group'
])
&&
is_array
(
$config
[
'system'
][
'group'
]))
{
usort
(
$config
[
'system'
][
'group'
],
"cpusercmp"
);
}
redirectHeader
(
"system_groupmanager.php?act=edit&id=
{
$groupid
}
"
);
write_config
();
redirectHeader
(
"system_groupmanager.php?act=edit&groupid=
{
$groupid
}
"
);
exit
;
}
}
else
{
redirectHeader
(
"system_groupmanager.php"
);
exit
;
}
}
include
(
"head.inc"
);
?>
<body>
<?php
include
(
"fbegin.inc"
);
?>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
<?php
if
(
is_array
(
$priv_list
))
{
$id
=
0
;
$jdescs
=
"var descs = new Array();
\n
"
;
foreach
(
$priv_list
as
$pname
=>
$pdata
)
{
if
(
in_array
(
$pname
,
$a_group
[
'priv'
]))
{
continue
;
}
$desc
=
addslashes
(
$pdata
[
'descr'
]);
$jdescs
.=
"descs[
{
$id
}
] = '
{
$desc
}
';
\n
"
;
$id
++
;
}
$pgtitle
=
array
(
gettext
(
'System'
),
gettext
(
'Groups'
),
gettext
(
'Privileges'
));
echo
$jdescs
;
if
(
!
isset
(
$a_group
[
'priv'
])
||
!
is_array
(
$a_group
[
'priv'
]))
{
$a_group
[
'priv'
]
=
array
();
}
include
(
"head.inc"
);
?>
function
update_description
()
{
var
index
=
document
.
iform
.
sysprivs
.
selectedIndex
;
document
.
getElementById
(
"
pdesc
"
).
innerHTML
=
descs
[
index
];
}
//]]>
<body
link=
"#0000CC"
vlink=
"#0000CC"
alink=
"#0000CC"
>
<?php
include
(
"fbegin.inc"
);
?>
<script
type=
"text/javascript"
>
$
(
document
).
ready
(
function
()
{
$
(
"
#sysprivs
"
).
change
(
function
(){
$
(
"
#pdesc
"
).
html
(
$
(
this
).
find
(
'
:selected
'
).
data
(
'
descr
'
));
});
});
</script>
<section
class=
"page-content-main"
>
<div
class=
"container-fluid"
>
<div
class=
"row"
>
<?php
if
(
isset
(
$input_errors
)
&&
count
(
$input_errors
)
>
0
)
{
print_input_errors
(
$input_errors
);
}
if
(
isset
(
$savemsg
))
{
print_info_box
(
$savemsg
);
}
?>
<section
class=
"col-xs-12"
>
<div
class=
"tab-content content-box col-xs-12"
>
<form
action=
"system_groupmanager_addprivs.php"
method=
"post"
name=
"iform"
id=
"iform"
>
<table
width=
"100%"
border=
"0"
cellpadding=
"6"
cellspacing=
"0"
summary=
"main area"
class=
"table table-striped"
>
<tr>
<td
width=
"22%"
valign=
"top"
class=
"vncellreq"
>
<?=
gettext
(
"System Privileges"
);
?>
<br
/><a
href=
'#'
onClick=
"selectAll();"
>
<?=
gettext
(
'Select all'
)
?>
</a></td>
<td
width=
"78%"
class=
"vtable"
>
<select
name=
"sysprivs[]"
id=
"sysprivs"
class=
"formselect"
onchange=
"update_description();"
multiple=
"multiple"
size=
"35"
>
<?php
foreach
(
$priv_list
as
$pname
=>
$pdata
)
:
if
(
in_array
(
$pname
,
$a_group
[
'priv'
]))
{
continue
;
}
?>
<option
value=
"
<?=
$pname
;
?>
"
>
<?=
$pdata
[
'name'
];
?>
</option>
<?php
endforeach
;
?>
</select>
<br
/>
<?=
gettext
(
"Hold down CTRL (pc)/COMMAND (mac) key to select multiple items"
);
?>
</td>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
function
selectAll
()
{
var
options
=
jQuery
(
'
select#sysprivs option
'
);
var
len
=
options
.
length
;
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
options
[
i
].
selected
=
true
;
}
}
//selectAll();
//]]>
</script>
</tr>
<tr
height=
"60"
>
<td
width=
"22%"
valign=
"top"
class=
"vncell"
>
<?=
gettext
(
"Description"
);
?>
</td>
<td
width=
"78%"
valign=
"top"
class=
"vtable"
id=
"pdesc"
>
<em>
<?=
gettext
(
"Select a privilege from the list above for a description"
);
?>
</em>
</td>
</tr>
<tr>
<td
width=
"22%"
valign=
"top"
>
</td>
<td
width=
"78%"
>
<input
id=
"submitt"
name=
"Submit"
type=
"submit"
class=
"formbtn btn btn-primary"
value=
"
<?=
gettext
(
"Save"
);
?>
"
/>
<input
id=
"cancelbutton"
class=
"formbtn btn btn-default"
type=
"button"
value=
"
<?=
gettext
(
"Cancel"
);
?>
"
onclick=
"history.back()"
/>
<?php
if
(
isset
(
$groupid
))
:
<div
class=
"container-fluid"
>
<div
class=
"row"
>
<?php
if
(
isset
(
$input_errors
)
&&
count
(
$input_errors
)
>
0
)
{
print_input_errors
(
$input_errors
);
}
?>
<section
class=
"col-xs-12"
>
<div
class=
"tab-content content-box col-xs-12"
>
<form
method=
"post"
name=
"iform"
>
<table
class=
"table table-striped"
>
<tr>
<td
width=
"22%"
>
<?=
gettext
(
"System Privileges"
);
?>
</td>
<td
width=
"78%"
>
<select
name=
"sysprivs[]"
id=
"sysprivs"
class=
"formselect"
multiple=
"multiple"
size=
"35"
>
<?php
foreach
(
$priv_list
as
$pname
=>
$pdata
)
:
if
(
in_array
(
$pname
,
$a_user
[
'priv'
]))
{
continue
;
}
?>
<input
name=
"groupid"
type=
"hidden"
value=
"
<?=
htmlspecialchars
(
$groupid
);
?>
"
/>
<?php
endif
;
?>
</td>
</tr>
</table>
</form>
</div>
</section>
</div>
</div>
<option
data-descr=
"
<?=
!
empty
(
$pdata
[
'descr'
])
?
$pdata
[
'descr'
]
:
""
;
?>
"
value=
"
<?=
$pname
;
?>
"
>
<?=
$pdata
[
'name'
];
?>
</option>
<?php
endforeach
;
?>
</select>
<br
/>
<?=
gettext
(
"Hold down CTRL (pc)/COMMAND (mac) key to select multiple items"
);
?>
</td>
</tr>
<tr>
<td>
<?=
gettext
(
"Description"
);
?>
</td>
<td
id=
"pdesc"
>
<em>
<?=
gettext
(
"Select a privilege from the list above for a description"
);
?>
</em>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input
type=
"submit"
class=
"btn btn-primary"
value=
"
<?=
gettext
(
"Save"
);
?>
"
/>
<input
class=
"btn btn-default"
type=
"button"
value=
"
<?=
gettext
(
"Cancel"
);
?>
"
onclick=
"history.back()"
/>
<input
name=
"groupid"
type=
"hidden"
value=
"
<?=
$groupid
;
?>
"
/>
</td>
</tr>
</table>
</form>
</div>
</section>
</div>
</div>
</section>
<?php
include
(
"foot.inc"
);
?>
</body>
</html>
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