diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-01-01 19:52:51 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2017-05-15 19:09:20 -0400 |
commit | 16143217c55e70b592c8df72b3315c6bc3dbdfd6 (patch) | |
tree | 4416fdcfa833d52b76847340e6b5baf11ffbf8d4 /sd_login/type_user.go | |
parent | cb4fea2e01e6923a016fdc57c48ee9d4045d8428 (diff) |
sd_login: Initial WIP implementation
Diffstat (limited to 'sd_login/type_user.go')
-rw-r--r-- | sd_login/type_user.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sd_login/type_user.go b/sd_login/type_user.go new file mode 100644 index 0000000..81a5418 --- /dev/null +++ b/sd_login/type_user.go @@ -0,0 +1,57 @@ +// Copyright (C) 2016 Luke Shumaker <lukeshu@sbcglobal.net> +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package sd_login + +import ( + "strconv" +) + +type User int + +type UserState int + +const ( + UserOffline UserState = iota + UserLingering + UserOnline + UserActive + UserClosing +) + +// GetUsers returns a list of all users who currently have login +// sessions. +func GetUsers() ([]User, error) { + strs, err := get_files_in_directory("/run/systemd/users/") + if err != nil { + return nil, err + } + var users []User + for _, uid_str := range strs { + uid, err := strconv.Atoi(uid_str) + if err != nil { + continue + } + users = append(users, User(uid)) + } + return users, nil +} + +func (uid User) IsOnSeat(seat Seat, requireActive bool) bool +func (uid User) GetState() (UserState, error) + +// primary session +func (uid User) GetDisplay() (Session, error) +func (uid User) GetSessions(requireActive bool) ([]Session, error) +func (uid User) GetSeats(requireActive bool) ([]Seat, error) |