[refactor] turn permission checks into a function main.rs

main
Shinyzenith 2 years ago
parent 37d141d7c3
commit dbad34c65f
No known key found for this signature in database
GPG Key ID: 6DD485917B553B7B

@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
async-std = "1.10.0"
#async-std = "1.10.0"
evdev = "0.11.3"
glob = "0.3.0"
log = "0.4.0"

@ -29,14 +29,7 @@ pub fn main() {
env_logger::init();
log::trace!("Logger initialized.");
if unistd::Uid::current().is_root() {
log::error!("Refusing to run swhkd as root.");
exit(1);
}
/* Check if invoking user is in input group */
if user_in_input_group() == false {
log::error!("Invoking user is NOT in input group.");
if permission_check() == false {
exit(1);
}
@ -74,7 +67,12 @@ pub fn main() {
}
}
pub fn user_in_input_group() -> bool {
pub fn permission_check() -> bool {
if unistd::Uid::current().is_root() {
log::error!("Refusing to run swhkd as root.");
return false;
}
log::trace!("Checking if invoking user is in input group.");
let groups = unistd::getgroups();
for (_, groups) in groups.iter().enumerate() {
@ -86,6 +84,7 @@ pub fn user_in_input_group() -> bool {
}
}
}
log::error!("Invoking user is NOT in input group.");
return false;
}

Loading…
Cancel
Save