github.com/infraboard/keyauth@v0.8.1/apps/system/http/system.go (about)

     1  package http
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/infraboard/mcube/exception"
     7  	"github.com/infraboard/mcube/http/context"
     8  	"github.com/infraboard/mcube/http/request"
     9  	"github.com/infraboard/mcube/http/response"
    10  
    11  	"github.com/infraboard/keyauth/apps/system/notify/mail"
    12  	"github.com/infraboard/keyauth/apps/system/notify/sms"
    13  	"github.com/infraboard/keyauth/apps/token"
    14  	"github.com/infraboard/keyauth/apps/user/types"
    15  	"github.com/infraboard/keyauth/apps/verifycode"
    16  )
    17  
    18  func (h *handler) GetSystemConfig(w http.ResponseWriter, r *http.Request) {
    19  	ctx := context.GetContext(r)
    20  	tk := ctx.AuthInfo.(*token.Token)
    21  
    22  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
    23  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
    24  		return
    25  	}
    26  
    27  	conf, err := h.service.GetConfig()
    28  	if err != nil {
    29  		response.Failed(w, err)
    30  		return
    31  	}
    32  
    33  	conf.Desensitize()
    34  	response.Success(w, conf)
    35  }
    36  
    37  func (h *handler) TestEmailSend(w http.ResponseWriter, r *http.Request) {
    38  	ctx := context.GetContext(r)
    39  	tk := ctx.AuthInfo.(*token.Token)
    40  
    41  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
    42  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
    43  		return
    44  	}
    45  
    46  	req := mail.NewDeaultTestSendRequest()
    47  	if err := request.GetDataFromRequest(r, req); err != nil {
    48  		response.Failed(w, err)
    49  		return
    50  	}
    51  
    52  	if err := req.Send(); err != nil {
    53  		response.Failed(w, err)
    54  		return
    55  	}
    56  
    57  	response.Success(w, "ok")
    58  }
    59  
    60  func (h *handler) SettingEmail(w http.ResponseWriter, r *http.Request) {
    61  	ctx := context.GetContext(r)
    62  	tk := ctx.AuthInfo.(*token.Token)
    63  
    64  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
    65  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
    66  		return
    67  	}
    68  
    69  	req := mail.NewDefaultConfig()
    70  	if err := request.GetDataFromRequest(r, req); err != nil {
    71  		response.Failed(w, err)
    72  		return
    73  	}
    74  
    75  	err := h.service.UpdateEmail(req)
    76  	if err != nil {
    77  		response.Failed(w, err)
    78  		return
    79  	}
    80  
    81  	response.Success(w, req)
    82  }
    83  
    84  func (h *handler) TestSMSSend(w http.ResponseWriter, r *http.Request) {
    85  	ctx := context.GetContext(r)
    86  	tk := ctx.AuthInfo.(*token.Token)
    87  
    88  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
    89  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
    90  		return
    91  	}
    92  
    93  	req := sms.NewDeaultTestSendRequest()
    94  	if err := request.GetDataFromRequest(r, req); err != nil {
    95  		response.Failed(w, err)
    96  		return
    97  	}
    98  
    99  	if err := req.Send(); err != nil {
   100  		response.Failed(w, err)
   101  		return
   102  	}
   103  
   104  	response.Success(w, "ok")
   105  }
   106  
   107  func (h *handler) SettingSMS(w http.ResponseWriter, r *http.Request) {
   108  	ctx := context.GetContext(r)
   109  	tk := ctx.AuthInfo.(*token.Token)
   110  
   111  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
   112  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
   113  		return
   114  	}
   115  
   116  	req := sms.NewDefaultConfig()
   117  	if err := request.GetDataFromRequest(r, req); err != nil {
   118  		response.Failed(w, err)
   119  		return
   120  	}
   121  
   122  	err := h.service.UpdateSMS(req)
   123  	if err != nil {
   124  		response.Failed(w, err)
   125  		return
   126  	}
   127  
   128  	response.Success(w, req)
   129  }
   130  
   131  func (h *handler) SettingVerifyCode(w http.ResponseWriter, r *http.Request) {
   132  	ctx := context.GetContext(r)
   133  	tk := ctx.AuthInfo.(*token.Token)
   134  
   135  	if !tk.UserType.IsIn(types.UserType_SUPPER) {
   136  		response.Failed(w, exception.NewPermissionDeny("only system admin can operate"))
   137  		return
   138  	}
   139  
   140  	req := verifycode.NewDefaultConfig()
   141  	if err := request.GetDataFromRequest(r, req); err != nil {
   142  		response.Failed(w, err)
   143  		return
   144  	}
   145  
   146  	err := h.service.UpdateVerifyCode(req)
   147  	if err != nil {
   148  		response.Failed(w, err)
   149  		return
   150  	}
   151  
   152  	response.Success(w, req)
   153  }