otfe/models/user.go

81 lines
2.0 KiB
Go

// package models
// import (
// "errors"
// "fmt"
// "github.com/globalsign/mgo/bson"
// )
// //User model
// type User struct {
// ID bson.ObjectId `bson:"_id,omitempty"`
// Email string `bson:"email"`
// Name string `bson:"name"`
// Username string `bson:"username"`
// Password string `bson:"password"`
// PrimaryGroup bson.ObjectId `bson:"primarygroup,omitempty"`
// Groups []bson.ObjectId `bson:"groups,omitempty"`
// Session string
// }
// //Create user
// func (u *User) Create() error {
// var user User
// read("user", "email", u.Email, &user)
// if u.Email == user.Email {
// return errors.New("Email all ready used")
// }
// return create("user", &u)
// }
// //Read user
// func (u *User) Read(key string, value interface{}) error {
// err := read("user", key, value, &u)
// if err != nil {
// return errors.New("User doesn't exist")
// }
// return nil
// }
// //ReadAll users
// func (u *User) ReadAll() ([]User, error) {
// var users []User
// var err error
// err = readAll("user", "", nil, &users)
// return users, err
// }
// //Update user
// func (u *User) Update() error {
// return update("user", "_id", u.ID, &u)
// }
// //Delete user
// func (u *User) Delete(key string, value string) error {
// err := delete("user", key, value)
// return err
// }
// //HasPermission check if a given user is admin or has a given permisssion
// func (u *User) HasPermission(perm string) bool {
// var group Group
// //Check primary group
// err := group.Read("_id", u.PrimaryGroup)
// fmt.Println(group.Admin)
// if err == nil && (group.Admin == true || group.Permissions[perm] == true) {
// return true
// }
// //Check other groups
// for id := range u.Groups {
// err = group.Read("_id", id)
// if err == nil && (group.Admin || group.Permissions[perm]) {
// return true
// }
// }
// return false
// }