Beispiel #1
0
        public ActionResult <BoardListResultModel> List()
        {
            ApiResultReady       rrResult  = new ApiResultReady(this);
            BoardListResultModel armResult = new BoardListResultModel();

            rrResult.ResultObject = armResult;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    armResult.List = db1.Board.ToList();
                }//end using db1
            }
            else
            {
                //에러
                rrResult.InfoCode = typePC.ToString();
            }

            return(rrResult.ToResult());
        }
Beispiel #2
0
        /// <summary>
        /// 지정된 관리 등급보다 내가 높은 권한 등급을 가지고 있는지 확인한다.
        /// </summary>
        /// <param name="nUserId"></param>
        /// <param name="typeMgtClass"></param>
        /// <returns></returns>
        public ManagementClassCheckType MgtClassCheck(
            long nUserId
            , ManagementClassType typeMgtClass)
        {
            ManagementClassCheckType typePCReturn = ManagementClassCheckType.None;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //내정보 찾기
                UserInfo ui
                    = db1.UserInfo
                      .Where(m => m.idUser == nUserId)
                      .FirstOrDefault();

                if (null == ui)
                {//검색 대상이 없다.
                    typePCReturn = ManagementClassCheckType.NoUser;
                }
                else
                {
                    if (ui.MgtClass > typeMgtClass)
                    {//권한이 없다.
                        typePCReturn = ManagementClassCheckType.NoPer;
                    }
                    else
                    {//권한이 있다.
                        typePCReturn = ManagementClassCheckType.Ok;
                    }
                }
            }//end using db1

            return(typePCReturn);
        }
        public ActionResult <SettingListResultModel> SettingList()
        {
            ApiResultReady         rrResult  = new ApiResultReady(this);
            SettingListResultModel armResult = new SettingListResultModel();

            rrResult.ResultObject = armResult;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Root);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //세팅 리스트
                    armResult.SettingList
                        = db1.Setting_Data
                          .OrderBy(m => m.Number)
                          .ToArray();
                }//end using db1
            }
            else
            {
                //에러
                rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString();
            }

            return(rrResult.ToResult(armResult));
        }
Beispiel #4
0
        public ActionResult <ApiResultBaseModel> SignEmailCheck(string sEmail)
        {
            //리턴 보조
            ApiResultReady armResult = new ApiResultReady(this);

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                User findUser
                    = db1.User
                      .Where(m => m.SignEmail == sEmail)
                      .FirstOrDefault();

                if (null == findUser)
                {//성공
                    armResult.InfoCode = "0";
                }
                else
                {//이미 있음
                    armResult.InfoCode = "-1";
                    armResult.Message  = "이미 사용중인 아이디 입니다.";
                }
            }

            return(armResult.ToResult(null));
        }
Beispiel #5
0
        /// <summary>
        /// DB에 로그 남기기
        /// </summary>
        /// <param name="nLogLevel">로그 수준</param>
        /// <param name="typeSignLog"></param>
        /// <param name="idUser"></param>
        /// <param name="sMessage"></param>
        public static void LogAdd_DB(
            int nLogLevel
            , UserSignLogType typeSignLog
            , long idUser
            , string sMessage)
        {
            if (nLogLevel <= GlobalStatic.SignLogLevel)
            {
                //기준 날짜
                DateTime dtNow = DateTime.Now;

                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    UserSignLog newSL = new UserSignLog();
                    newSL.AddDate     = dtNow;
                    newSL.Level       = nLogLevel;
                    newSL.SignLogType = typeSignLog;

                    newSL.idUser   = idUser;
                    newSL.Contents = sMessage;

                    db1.UserSignLog.Add(newSL);
                    db1.SaveChanges();
                } //end using db1
            }
        }         //end LogAdd_DB
 /// <summary>
 /// DB에서 세팅 정보를 불러 메모리에 저장한다.
 /// DB에서 세팅을 수정하였다면 이 함수를 호출하여 메모리를 갱신해야한다.
 /// </summary>
 public void Setting_Load()
 {
     using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
     {
         Setting_Data
             = db1.Setting_Data
               .ToList();
     }
 }
Beispiel #7
0
        public ActionResult <ApiResultBaseModel> Edit(
            [FromForm] long nBoardId
            , [FromForm] string sTitle
            , [FromForm] short nShowCount
            , [FromForm] BoardStateType typeBoardState
            , [FromForm] BoardFacultyType typeBoardFaculty
            , [FromForm] BoardAuthorityType nAuthorityDefault
            , [FromForm] string sMemo)
        {
            ApiResultReady armResult = new ApiResultReady(this);

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    Board findBoard
                        = db1.Board
                          .Where(m => m.idBoard == nBoardId)
                          .FirstOrDefault();

                    if (null != findBoard)
                    {
                        findBoard.Title            = sTitle;
                        findBoard.ShowCount        = nShowCount;
                        findBoard.BoardState       = typeBoardState;
                        findBoard.BoardFaculty     = (BoardFacultyType)typeBoardFaculty;
                        findBoard.AuthorityDefault = (BoardAuthorityType)nAuthorityDefault;
                        findBoard.Memo             = sMemo;

                        db1.SaveChanges();

                        //게시판 정보 json으로 저장
                        GlobalStatic.FileProc.WWW_Json_BoardInfo();
                    }
                    else
                    {
                        armResult.InfoCode = typePC.ToString();
                        armResult.Message  = "대상이 없습니다.";
                    }
                }//end using db1
            }
            else
            {
                //에러
                armResult.InfoCode = ApiResultType.PermissionCheckError.ToString();
                armResult.Message  = "권한이 없습니다.";
            }

            return(armResult.ToResult());
        }
Beispiel #8
0
        /// <summary>
        /// 자기가 사용할 수 있는 유저 정보를 준다.
        /// 내가 소유자면 uiUse와 uiMy가 같은 정보다.
        /// 내가 직원이면 uiUse와 uiMy가 다른 정보가 들어간다.
        /// </summary>
        /// <param name="nUserId"></param>
        /// <param name="uiUse"></param>
        /// <param name="uiMy"></param>
        public void UserInfoGet(
            long nUserId
            , out UserInfo uiUse
            , out UserInfo uiMy)
        {
            UserInfo uiUseTemp = null;
            UserInfo uiMyTemp  = null;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //내정보 찾기
                uiMyTemp
                    = db1.UserInfo
                      .Where(m => m.idUser == nUserId)
                      .FirstOrDefault();

                if (null != uiMyTemp)
                {
                    switch (uiMyTemp.MgtClass)
                    {
                    case ManagementClassType.Root:
                    case ManagementClassType.Admin:
                    case ManagementClassType.User:
                        //내가 소유주다.
                        //검색된 내용이 내 정보다.
                        uiUseTemp = uiMyTemp;
                        break;

                    case ManagementClassType.RootDev:
                    case ManagementClassType.AdminEmployee:
                        //내가 직원이다.
                        //부모 정보를 검색한다.
                        uiUseTemp
                            = db1.UserInfo
                              .Where(m => m.idUser == uiMyTemp.idUser_Parent)
                              .FirstOrDefault();
                        break;

                    case ManagementClassType.RootTest:
                    case ManagementClassType.AdminTest:
                    case ManagementClassType.TestUser:
                        //테스트 계정
                        //내 정보를 사용한다.
                        uiUseTemp = uiMyTemp;
                        break;


                        //여긴 디폴트가 필요 없다.
                    }
                }

                //검색 결과 저장
                uiUse = uiUseTemp;
                uiMy  = uiMyTemp;
            } //end using db1
        }     //end UserInfoGet
Beispiel #9
0
        public ActionResult <ApiResultBaseModel> TestPostAdd(
            [FromForm] int nBoardId)
        {
            ApiResultReady rrResult = new ApiResultReady(this);

            DateTime dtNow  = DateTime.Now;
            int      nCount = 0;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);


            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    for (int i = 0; i < 300; ++i)
                    {
                        ++nCount;

                        //포스트
                        BoardPost newBP = new BoardPost();
                        newBP.idBoard   = nBoardId;
                        newBP.idUser    = cm.id_int;
                        newBP.Title     = string.Format("테스트용 데이터 {0} - {1} ", nCount, dtNow);
                        newBP.WriteDate = dtNow;

                        db1.BoardPost.Add(newBP);
                        db1.SaveChanges();


                        //컨탠츠
                        BoardContent newBC = new BoardContent();
                        newBC.idBoard     = newBP.idBoard;
                        newBC.idBoardPost = newBP.idBoardPost;
                        newBC.Content     = string.Format("테스트용 내용 {0} - {1} ", nCount, dtNow);

                        db1.BoardContent.Add(newBC);
                        db1.SaveChanges();
                    }
                }//end using db1
            }
            else
            {
                //에러
                rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString();
            }

            return(rrResult.ToResult());
        }
        public ActionResult <ApiResultObjectModel> SettingSet(
            [FromForm] Setting_Data s_dTossData)
        {
            ApiResultReady       rrResult  = new ApiResultReady(this);
            ApiResultObjectModel armResult = new ApiResultObjectModel();

            rrResult.ResultObject = armResult;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Root);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //수정할 개체 선택
                    Setting_Data s_dSelect
                        = db1.Setting_Data
                          .Where(m => m.idSetting_Data == s_dTossData.idSetting_Data)
                          .FirstOrDefault();

                    if (null != s_dSelect)
                    {
                        //데이터 수정
                        s_dSelect.Number      = s_dTossData.Number;
                        s_dSelect.Name        = s_dTossData.Name;
                        s_dSelect.OpenType    = s_dTossData.OpenType;
                        s_dSelect.ValueData   = s_dTossData.ValueData;
                        s_dSelect.Description = s_dTossData.Description;

                        //DB 저장
                        db1.SaveChanges();
                    }
                    else
                    {
                        rrResult.InfoCode = "1";
                        rrResult.Message  = "수정할 대상이 없습니다.";
                    }
                }//end using db1
            }
            else
            {
                //에러
                rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString();
            }

            return(rrResult.ToResult(armResult));
        }
Beispiel #11
0
        [Authorize]//OAuth2 인증 설정
        public ActionResult <string> SignOut(
            [FromForm] string sRefreshToken)
        {
            ApiResultReady rrResult = new ApiResultReady(this);

            //API 호출 시간
            DateTime dtNow = DateTime.Now;

            //인증 정보에서 유저 정보 추출
            var        identity = (ClaimsIdentity)User.Identity;
            ClaimModel cm       = new ClaimModel(identity.Claims);

            //사인아웃 시도 기록
            GlobalSign.LogAdd_DB(
                1
                , ModelDB.UserSignLogType.SignOut
                , cm.id_int
                , string.Format("SignOut 시도 : {0}", cm.email));


            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //기존 로그인한 유저 검색
                UserSignIn[] arrSL
                    = db1.UserSignIn
                      .Where(m => m.idUser == cm.id_int)
                      .ToArray();

                //기존 로그인한 유저 정보 제거
                db1.UserSignIn.RemoveRange(arrSL);
                //db 적용
                db1.SaveChanges();
            }


            //리플레시 토큰 제거
            if ((null != sRefreshToken) &&
                (string.Empty != sRefreshToken))
            {
                TokenRevocationResponse trr
                    = GlobalStatic.TokenProc
                      .RevocationTokenAsync(sRefreshToken)
                      .Result;
            }

            //로컬 인증 쿠키 삭제 요청
            HttpContext.SignOutAsync();

            //임시로 아이디를 넘긴다.
            return(rrResult.ToResult());
        }
Beispiel #12
0
        public ActionResult <ApiResultBaseModel> Create(
            [FromForm] string sTitle
            , [FromForm] BoardStateType typeBoardState
            , [FromForm] BoardAuthorityType nAuthorityDefault
            , [FromForm] string sMemo)
        {
            ApiResultReady rrResult = new ApiResultReady(this);


            DateTime dtNow = DateTime.Now;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    Board newBoard = new Board();
                    newBoard.Title            = sTitle;
                    newBoard.BoardState       = typeBoardState;
                    newBoard.AuthorityDefault = (BoardAuthorityType)nAuthorityDefault;

                    //기능 설정
                    newBoard.BoardFaculty |= BoardFacultyType.ShowCount_Server;

                    newBoard.ShowCount  = 10;
                    newBoard.Memo       = sMemo;
                    newBoard.CreateDate = dtNow;

                    db1.Board.Add(newBoard);
                    db1.SaveChanges();


                    //게시판 정보 json으로 저장
                    GlobalStatic.FileProc.WWW_Json_BoardInfo();
                }//end using db1
            }
            else
            {
                //에러
                rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString();
                rrResult.Message  = "권한이 없습니다.";
            }

            return(rrResult.ToResult());
        }
Beispiel #13
0
        }//end WWW_Json

        /// <summary>
        /// 게시판 정보 json으로 저장 - 유저에게 보낼 게시판 정보
        /// </summary>
        public void WWW_Json_BoardInfo()
        {
            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //json 파일로 저장*******************************
                List <BoardListInfoModel> listBoard
                    = db1.Board
                      .Select(m => new BoardListInfoModel(m))
                      .ToList();
                WWW_Json(
                    @"Faculty\Board\BoardInfo.json"
                    , listBoard);
            }
        }
Beispiel #14
0
        /// <summary>
        /// 아이디 검색
        /// </summary>
        /// <param name="nID"></param>
        /// <returns></returns>
        public UserRepositoryModel FindById(int nID)
        {
            UserAuthModel userReturn = new UserAuthModel();

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                User mgrItem
                    = db1.User
                      .FirstOrDefault(x => x.idUser == nID);

                userReturn.ManagerAuth_Set(mgrItem);
            }

            return(this.ToUserRepositoryModel(userReturn));
        }
Beispiel #15
0
        public ActionResult <ApiResultBaseModel> AuthEdit(
            [FromForm] long nBoardAuthority
            , [FromForm] int nAuthority
            , [FromForm] int nAuthState
            , [FromForm] string sMemo)
        {
            ApiResultReady rrResult = new ApiResultReady(this);

            DateTime dtNow = DateTime.Now;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //수정할 권한 찾기
                    BoardAuthority findBA
                        = db1.BoardAuthority
                          .Where(m => m.idBoardAuthority == nBoardAuthority)
                          .FirstOrDefault();

                    if (null == findBA)
                    {
                        rrResult.InfoCode = "-1";
                        rrResult.Message  = "수정할 대상을 찾지 못했습니다.";
                    }
                    else
                    {
                        findBA.Authority = (BoardAuthorityType)nAuthority;
                        findBA.AuthState = (BoardAuthorityStateType)nAuthState;
                        findBA.Memo      = sMemo;
                        findBA.EditDate  = dtNow;

                        db1.SaveChanges();
                    }
                }//end using db1
            }


            return(rrResult.ToResult());
        }
Beispiel #16
0
        /// <summary>
        /// 이름 검색
        /// </summary>
        /// <param name="sEmail"></param>
        /// <returns></returns>
        public UserRepositoryModel FindByEmail(string sEmail)
        {
            UserAuthModel userAuth = null;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                User mgrItem
                    = db1.User
                      .FirstOrDefault(x => x.SignEmail == sEmail);

                if (mgrItem != null)
                {
                    userAuth = new UserAuthModel(mgrItem);
                }
            }

            return(this.ToUserRepositoryModel(userAuth));
        }
Beispiel #17
0
        public ActionResult <BoardAuthListResultModel> AuthList(long nBoardId)
        {
            ApiResultReady           rrResult  = new ApiResultReady(this);
            BoardAuthListResultModel armResult = new BoardAuthListResultModel();

            rrResult.ResultObject = armResult;

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);

            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    IQueryable <BoardAuthority> iqBAuth
                        = db1.BoardAuthority
                          .Where(m => m.idBoard == nBoardId);

                    armResult.List
                        = (from bauth in iqBAuth
                           join user in db1.UserInfo
                           on bauth.idUser equals user.idUser
                           select new BoardAuthItemModel
                    {
                        idBoardAuthority = bauth.idBoardAuthority,
                        idBoard = bauth.idBoard,
                        idUser = bauth.idUser,
                        Authority = bauth.Authority,
                        AuthState = bauth.AuthState,
                        UserName = user.ViewName,
                        SignEmail = "",
                        Memo = bauth.Memo,
                        EditDate = bauth.EditDate
                    })
                          .ToList();
                }//end using db1
            }

            return(rrResult.ToResult());
        }
Beispiel #18
0
        /// <summary>
        /// 인증정보가 확인
        /// </summary>
        /// <param name="sEmail"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        public bool ValidateCredentials(string sEmail, string sPassword)
        {
            bool bReturn = false;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                User mgrItem
                    = db1.User
                      .FirstOrDefault(x => x.SignEmail == sEmail &&
                                      x.Password == sPassword);

                if (mgrItem != null)
                {
                    bReturn = true;
                }
            }

            return(bReturn);
        }
Beispiel #19
0
        [Authorize]//OAuth2 인증 설정
        public ActionResult <SignInSimpleResultModel> AccessToUserInfo()
        {
            //리턴 보조
            ApiResultReady armResult = new ApiResultReady(this);
            //리턴용 모델
            SignInSimpleResultModel tmResult = new SignInSimpleResultModel();

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);

            //검색된 유저
            User findUser = null;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //유저 검색
                findUser
                    = db1.User
                      .FirstOrDefault(m =>
                                      m.idUser == cm.id_int);

                if (null != findUser)
                {//유저 정보가 있다.
                    UserInfo fundUI
                        = db1.UserInfo
                          .Where(m => m.idUser == findUser.idUser)
                          .FirstOrDefault();

                    tmResult.idUser   = findUser.idUser;
                    tmResult.Email    = findUser.SignEmail;
                    tmResult.ViewName = fundUI.ViewName;

                    tmResult.MgtClass = fundUI.MgtClass;
                }
                else
                {//유저 정보가 없다.
                    armResult.InfoCode = "1";
                    armResult.Message  = "엑세스 토큰이 유효하지 않습니다.[로그인 필요]";
                }
            }

            return(armResult.ToResult(tmResult));
        }
        /// <summary>
        /// 값을 검색한다. - 문자열
        /// </summary>
        /// <param name="sName"></param>
        /// <returns></returns>
        public string GetValue(string sName)
        {
            string sReturn = string.Empty;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                sReturn
                    = db1.Setting_Data
                      .Where(m => m.Name == sName)
                      .FirstOrDefault()
                      .ValueData;

                if (true == string.IsNullOrEmpty(sReturn))
                {//빈값이면 빈값으로 초기화
                    sReturn = string.Empty;
                }
            }

            return(sReturn);
        }
        /// <summary>
        /// DB에서 세팅 정보를 불러 메모리에 저장한다.
        /// DB에서 세팅을 수정하였다면 이 함수를 호출하여 메모리를 갱신해야한다.
        /// </summary>
        public void Setting_Load()
        {
            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //대상 로드
                this.Setting_Data
                    = db1.Setting_Data
                      .ToList();


                //json 파일로 출력***********
                //json으로 출력할 데이터리스트만 추린다.
                List <Setting_Data> listS_D
                    = this.Setting_Data
                      .Where(w => w.OpenType == Setting_DataOpenType.Public)
                      .ToList();

                //변환용 모델로 변환
                List <ListToJavascriptModel> listLTJ
                    = listS_D
                      .Select(s => new ListToJavascriptModel
                {
                    Summary = s.Description,
                    Name    = s.Name,
                    Value   = s.ValueData
                })
                      .ToList();

                //json문자열로 변환
                string sJson = GlobalStatic.JsProc.ToJsonString(listLTJ);

                //파일 출력
                GlobalStatic.FileProc
                .WWW_FileSave(
                    @"Faculty\Setting_Data.json"
                    , sJson);
            }
        }
Beispiel #22
0
        public ActionResult <ApiResultBaseModel> ViewNameCheck(string sViewName)
        {
            //리턴 보조
            ApiResultReady armResult = new ApiResultReady(this);

            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                UserInfo findUserInfo
                    = db1.UserInfo
                      .Where(m => m.ViewName == sViewName)
                      .FirstOrDefault();

                if (null == findUserInfo)
                {//성공
                    armResult.InfoCode = "0";
                }
                else
                {     //이미 있음
                    if (findUserInfo.idUser == cm.id_int)
                    { //내 아이디다.
                        //내가 쓰는 내 닉네임은 중복검사에서 제외이므로
                        //성공으로 취급한다.
                        armResult.InfoCode = "0";
                    }
                    else
                    {
                        armResult.InfoCode = "-1";
                        armResult.Message  = "이미 사용중인 닉네임 입니다.";
                    }
                }
            }

            return(armResult.ToResult(null));
        }
Beispiel #23
0
        public ActionResult <SignInResultModel> RefreshToAccess(
            [FromForm] string sRefreshToken)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //엑세스 토큰 갱신용 모델
            SignInResultModel rmResult = new SignInResultModel();

            rrResult.ResultObject = rmResult;

            //API 호출 시간
            DateTime dtNow = DateTime.Now;

            //리플레시 토큰 갱신 시도 기록
            GlobalSign.LogAdd_DB(
                1
                , ModelDB.UserSignLogType.RefreshToken
                , 0
                , string.Format("RefreshToAccess 시도 : {0}", sRefreshToken));


            //토큰 갱신 요청
            TokenResponse tr = GlobalStatic.TokenProc.RefreshTokenAsync(sRefreshToken).Result;

            //기존 로그인한 유저 검색
            UserSignIn itemUSI = null;


            if (true == tr.IsError)
            {//토큰 갱신 실패
                //DB에 있는 리플레시 토큰은 수동으로 확인해서 갱신해준다.
                //토큰 정보는 메모리에 저장되기 때문에 서버가 내려갔다 올라오면 토큰정보가 날아간다.
                //이런 예외를 처리하기위해 수동으로 리플레시 토큰을 갱신해야한다.
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //기존 로그인한 유저 검색
                    itemUSI
                        = db1.UserSignIn
                          .Where(m => m.RefreshToken == sRefreshToken)
                          .FirstOrDefault();

                    if (null == itemUSI)
                    {//정보 자체가 없다.
                        rrResult.InfoCode = "-101";
                        rrResult.Message  = "갱신실패 : 인증 정보가 없습니다.";
                    }
                    else if (dtNow > itemUSI.RefreshDate)
                    {//인증정보의 유효기간이 지났다.
                        rrResult.InfoCode = "-102";
                        rrResult.Message  = "갱신실패 : 인증가능 기간이 지났습니다.";
                    }
                    else
                    {//토큰이 살아있다.
                        //유저를 검색한다.
                        User findUser
                            = db1.User
                              .Where(w => w.idUser == itemUSI.idUser)
                              .FirstOrDefault();

                        //토큰을 갱신한다.
                        tr
                            = GlobalStatic.TokenProc
                              .RequestTokenAsync(findUser.SignEmail, findUser.Password)
                              .Result;
                    }
                } //end using db1
            }     //end if (true == tr.IsError)


            if (true == rrResult.IsSuccess())
            {
                if (true == tr.IsError)
                {
                    rrResult.InfoCode = "1";
                    rrResult.Message  = "토큰 갱신에 실패하였습니다.";
                }
            }


            if (true == rrResult.IsSuccess())
            {//에러가 없다.
                //유저 정보를 받는다.
                UserInfoResponse inrUser
                    = GlobalStatic.TokenProc.UserInfoAsync(tr.AccessToken).Result;

                //유저 정보 추출
                ClaimModel cm = new ClaimModel(inrUser.Claims);

                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //기존 로그인한 유저 검색
                    itemUSI
                        = db1.UserSignIn
                          .Where(m => m.idUser == cm.id_int)
                          .FirstOrDefault();

                    if (null == itemUSI)
                    {//기존 로그인 정보가 없다,
                        //이러면 강제로 토큰이 상실된 것일 수 있다.
                        rrResult.InfoCode = "1";
                        rrResult.Message  = "토큰 갱신에 실패하였습니다.";
                    }
                    else
                    {
                        //로그인 되어있는 유저정보 수정
                        itemUSI.RefreshToken = tr.RefreshToken;
                        itemUSI.RefreshDate  = dtNow.AddDays(30);

                        //db 적용
                        db1.SaveChanges();


                        //유저에게 전달할 정보 만들기
                        rmResult.idUser   = cm.id_int;
                        rmResult.Email    = cm.email;
                        rmResult.ViewName = rmResult.Email;

                        rmResult.access_token  = tr.AccessToken;
                        rmResult.refresh_token = tr.RefreshToken;


                        //기록
                        GlobalSign.LogAdd_DB(
                            1
                            , ModelDB.UserSignLogType.RefreshToken
                            , cm.id_int
                            , string.Format("RefreshToAccess 성공 : {0}", rmResult.Email));
                    }
                }//end using db1
            }

            return(rrResult.ToResult(rmResult));
        }
Beispiel #24
0
        public ActionResult <ApiResultBaseModel> SignUp(
            [FromForm] string sEmail
            , [FromForm] string sViewName
            , [FromForm] string sPassword)
        {
            //리턴 보조
            ApiResultReady armResult = new ApiResultReady(this);

            DateTime dtNow = DateTime.Now;


            //인증 정보에서 유저 정보 추출
            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);


            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                User findUser
                    = db1.User
                      .Where(m => m.SignEmail == sEmail)
                      .FirstOrDefault();

                //표시 이름 검색
                UserInfo findViewName
                    = db1.UserInfo
                      .Where(m => m.ViewName == sViewName)
                      .FirstOrDefault();



                if ("0" == armResult.InfoCode &&
                    null != findUser)
                {//이미 있음
                    armResult.InfoCode = "-1";
                    armResult.Message  = "이미 사용중인 아이디 입니다.";
                }


                if ("0" == armResult.InfoCode &&
                    null != findViewName)
                {
                    armResult.InfoCode = "-3";
                    armResult.Message  = "표시이름을 사용하는 사용자가 있습니다.";
                }


                if ("0" == armResult.InfoCode)
                {//성공
                    //사인인 정보 추가
                    User newUser = new User();
                    newUser.SignEmail = sEmail;
                    newUser.Password  = sPassword;
                    db1.User.Add(newUser);
                    db1.SaveChanges();

                    //사용자 정보 추가
                    UserInfo newUI = new UserInfo();
                    newUI.idUser     = newUser.idUser;
                    newUI.ViewName   = newUser.SignEmail;
                    newUI.ViewName   = sViewName;
                    newUI.MgtClass   = ManagementClassType.User;
                    newUI.SignUpDate = dtNow;
                    db1.UserInfo.Add(newUI);

                    db1.SaveChanges();
                }
            }

            return(armResult.ToResult(null));
        }
Beispiel #25
0
        public ActionResult <SignInResultModel> SignIn(
            [FromForm] string sEmail
            , [FromForm] string sPW)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //로그인 처리용 모델
            SignInResultModel rmResult = new SignInResultModel();

            rrResult.ResultObject = rmResult;

            //API 호출 시간
            DateTime dtNow = DateTime.Now;


            //검색된 유저
            User findUser = null;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //유저 검색
                findUser
                    = db1.User
                      .FirstOrDefault(m =>
                                      m.SignEmail == sEmail &&
                                      m.Password == sPW);
            }


            if (findUser != null)
            {
                //토큰 요청
                TokenResponse tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result;

                if (true == tr.IsError)
                {//에러가 있다.
                    rrResult.InfoCode = "1";
                    rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
                }
                else
                {//에러가 없다.
                    using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                    {
                        //기존 로그인한 유저 검색
                        UserSignIn[] arrSL
                            = db1.UserSignIn
                              .Where(m => m.idUser == findUser.idUser)
                              .ToArray();

                        //기존 로그인한 유저 정보 제거
                        db1.UserSignIn.RemoveRange(arrSL);
                        //db 적용
                        db1.SaveChanges();

                        //사인인 한 유저의 정보
                        UserInfo findUI
                            = db1.UserInfo
                              .Where(m => m.idUser == findUser.idUser)
                              .FirstOrDefault();

                        //로그인 되어있는 유저정보 저장
                        UserSignIn slItem = new UserSignIn();
                        slItem.idUser       = findUser.idUser;
                        slItem.RefreshToken = tr.RefreshToken;
                        slItem.SignInDate   = dtNow;
                        slItem.RefreshDate  = dtNow;

                        //기존 로그인한 유저 정보 제거
                        db1.UserSignIn.Add(slItem);
                        //db 적용
                        db1.SaveChanges();

                        //로그인한 유저에게 전달할 정보
                        rmResult.idUser   = findUser.idUser;
                        rmResult.Email    = findUser.SignEmail;
                        rmResult.ViewName = findUI.ViewName;

                        rmResult.MgtClass = findUI.MgtClass;

                        rmResult.access_token  = tr.AccessToken;
                        rmResult.refresh_token = tr.RefreshToken;
                    }
                }
            }
            else
            {
                rrResult.InfoCode = "1";
                rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
            }

            return(rrResult.ToResult(rmResult));
        }
Beispiel #26
0
        public ActionResult <SignInResultModel> SignIn(
            [FromForm] string sEmail
            , [FromForm] string sPW)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //로그인 처리용 모델
            SignInResultModel rmResult = new SignInResultModel();

            rrResult.ResultObject = rmResult;

            //API 호출 시간
            DateTime dtNow = DateTime.Now;

            //사인인 시도 기록
            GlobalSign.LogAdd_DB(
                1
                , ModelDB.UserSignLogType.SignIn
                , 0
                , string.Format("SignIn 시도 - {0}, {1}", sEmail, sPW));


            //검색된 유저
            User findUser = null;

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //유저 검색
                findUser
                    = db1.User
                      .FirstOrDefault(m =>
                                      m.SignEmail == sEmail &&
                                      m.Password == sPW);
            }


            if (findUser != null)
            {
                //토큰 요청
                TokenResponse tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result;

                if (true == tr.IsError)
                {//에러가 있다.
                    rrResult.InfoCode = "1";
                    rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
                }
                else
                {//에러가 없다.
                    using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                    {
                        //기존 로그인한 유저 검색
                        UserSignIn[] arrSL
                            = db1.UserSignIn
                              .Where(m => m.idUser == findUser.idUser)
                              .ToArray();

                        //기존 로그인 토큰 제거
                        foreach (UserSignIn itemUSI in arrSL)
                        {
                            //리플레시 토큰 제거
                            if ((null != itemUSI.RefreshToken) &&
                                (string.Empty != itemUSI.RefreshToken))
                            {
                                TokenRevocationResponse trr
                                    = GlobalStatic.TokenProc
                                      .RevocationTokenAsync(itemUSI.RefreshToken)
                                      .Result;
                            }
                        }//end foreach itemUSI

                        //기존 로그인한 유저 정보 제거
                        db1.UserSignIn.RemoveRange(arrSL);
                        //db 적용
                        db1.SaveChanges();

                        //사인인 한 유저의 정보
                        UserInfo findUI
                            = db1.UserInfo
                              .Where(m => m.idUser == findUser.idUser)
                              .FirstOrDefault();

                        //로그인 되어있는 유저정보 저장
                        UserSignIn slItem = new UserSignIn();
                        slItem.idUser       = findUser.idUser;
                        slItem.RefreshToken = tr.RefreshToken;
                        slItem.SignInDate   = dtNow;
                        slItem.RefreshDate  = dtNow;

                        //기존 로그인한 유저 정보 제거
                        db1.UserSignIn.Add(slItem);
                        //db 적용
                        db1.SaveChanges();

                        //로그인한 유저에게 전달할 정보
                        rmResult.idUser   = findUser.idUser;
                        rmResult.Email    = findUser.SignEmail;
                        rmResult.ViewName = findUI.ViewName;

                        rmResult.MgtClass = findUI.MgtClass;

                        rmResult.access_token  = tr.AccessToken;
                        rmResult.refresh_token = tr.RefreshToken;

                        //성공 로그
                        //사인인 성공 기록
                        GlobalSign.LogAdd_DB(
                            1
                            , ModelDB.UserSignLogType.SignIn
                            , findUser.idUser
                            , string.Format("SignIn 성공 - {0}", sEmail));
                    }//end using db1
                }
            }
            else
            {
                rrResult.InfoCode = "1";
                rrResult.Message  = "아이디나 비밀번호가 틀렸습니다.";
            }

            return(rrResult.ToResult(rmResult));
        }
Beispiel #27
0
        public ActionResult <SignInResultModel> RefreshToAccess(
            [FromForm] string sRefreshToken)
        {
            //결과용
            ApiResultReady rrResult = new ApiResultReady(this);
            //엑세스 토큰 갱신용 모델
            SignInResultModel armResult = new SignInResultModel();

            rrResult.ResultObject = armResult;

            //API 호출 시간
            DateTime dtNow = DateTime.Now;

            //토큰 갱신 요청
            TokenResponse tr = GlobalStatic.TokenProc.RefreshTokenAsync(sRefreshToken).Result;

            if (true == tr.IsError)
            {//에러가 있다.
                rrResult.InfoCode = "1";
                rrResult.Message  = "토큰 갱신에 실패하였습니다.";
            }
            else
            {//에러가 없다.
                //유저 정보를 받는다.
                UserInfoResponse inrUser
                    = GlobalStatic.TokenProc.UserInfoAsync(tr.AccessToken).Result;

                //유저 정보 추출
                ClaimModel cm = new ClaimModel(inrUser.Claims);

                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //기존 로그인한 유저 검색
                    UserSignIn itemUSI
                        = db1.UserSignIn
                          .Where(m => m.idUser == cm.id_int)
                          .FirstOrDefault();

                    if (null == itemUSI)
                    {//기존 로그인 정보가 없다,
                        //이러면 강제로 토큰이 상실된 것일 수 있다.
                        rrResult.InfoCode = "1";
                        rrResult.Message  = "토큰 갱신에 실패하였습니다.";
                    }
                    else
                    {
                        //로그인 되어있는 유저정보 수정
                        itemUSI.RefreshToken = tr.RefreshToken;
                        itemUSI.RefreshDate  = dtNow;

                        //db 적용
                        db1.SaveChanges();


                        //사인인 한 유저의 정보
                        UserInfo findUI
                            = db1.UserInfo
                              .Where(m => m.idUser == cm.id_int)
                              .FirstOrDefault();

                        //유저에게 전달할 정보 만들기
                        armResult.idUser   = cm.id_int;
                        armResult.Email    = cm.email;
                        armResult.ViewName = findUI.ViewName;

                        armResult.MgtClass = findUI.MgtClass;

                        armResult.access_token  = tr.AccessToken;
                        armResult.refresh_token = tr.RefreshToken;
                    }
                }
            }

            return(rrResult.ToResult(armResult));
        }
Beispiel #28
0
        /// <summary>
        /// 파일을 저장하고 DB에 정보를 저장한다.
        /// </summary>
        /// <param name="sDir"></param>
        /// <param name="listFileInfo"></param>
        /// <param name="fiThumbnail"></param>
        /// <param name="byteThumbnail"></param>
        /// <returns></returns>
        public FileData[] FileInDb(string sDir
                                   , FileInfoModel[] listFileInfo
                                   , out FileInfoModel fiThumbnail
                                   , out byte[] byteThumbnail)
        {
            List <FileData> listReturnFile = new List <FileData>();

            fiThumbnail   = null;
            byteThumbnail = null;


            DateTime dtNow = DateTime.Now;

            //파일 저장 위치
            string sFilePathShort
                = string.Format(@"\wwwroot\Upload\{0:D4}\{1:D2}\{2:D2}\"
                                , dtNow.Year
                                , dtNow.Month
                                , dtNow.Day);
            //파일 외부 주소
            string sFileUrl
                = string.Format(@"/Upload/{0:D4}/{1:D2}/{2:D2}/"
                                , dtNow.Year
                                , dtNow.Month
                                , dtNow.Day);

            using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
            {
                //파일 처리******

                //파일 리스트 문자열
                StringBuilder sbFileList = new StringBuilder();

                foreach (FileInfoModel itemFI in listFileInfo)
                {
                    if ((0 >= itemFI.idFile) &&
                        (false == itemFI.Delete) &&
                        (false == itemFI.Edit))
                    {//추가다
                     //파일 추가*******************
                        FileData newFL = new FileData();
                        newFL.FileName       = itemFI.Name;
                        newFL.Ext            = itemFI.Extension;
                        newFL.Description    = itemFI.Description;
                        newFL.EditorDivision = itemFI.EditorDivision;
                        //새로 파일 처리를 한다.
                        newFL.FileState = FileStateType.NewFile;

                        //기초정보 생성
                        db1.FileData.Add(newFL);
                        db1.SaveChanges();

                        //생성된 인덱스 추가
                        sbFileList.Append("," + newFL.idFileList);

                        //저장위치 + 파일인덱스 + 확장자
                        string sFilePathShortFileName = sFilePathShort + newFL.idFileList + itemFI.Extension;
                        //url + 파일인덱스 + 확장자
                        string sFilePath = sDir + sFilePathShortFileName;
                        //파일 url
                        string sFileUrlName
                            = sFileUrl
                              + string.Format(@"{0}{1}"
                                              , newFL.idFileList
                                              , itemFI.Extension);

                        //디랙토리 생성
                        System.IO.Directory.CreateDirectory(sDir + sFilePathShort);
                        //파일 생성
                        using (FileStream stream = System.IO.File.Create(sFilePath))
                        {
                            //베이스64 데이터를 바이트 어레이로 변환
                            string[] sCutBase64 = itemFI.Binary.Split(",");
                            byte[]   byteFile;
                            if (2 <= sCutBase64.Length)
                            {
                                byteFile = Convert.FromBase64String(sCutBase64[1]);
                            }
                            else
                            {
                                byteFile = Convert.FromBase64String(sCutBase64[0]);
                            }

                            //파일 시스템에 저장
                            stream.Write(byteFile);

                            //썸네일 임시저장
                            if (true == itemFI.Thumbnail)
                            {
                                fiThumbnail   = itemFI;
                                byteThumbnail = byteFile;
                            }

                            //파일용량 저장
                            newFL.Size = byteFile.Length;
                        }//end using stream

                        newFL.FileDir = sFilePathShortFileName;
                        newFL.FileUrl = sFileUrlName;


                        //완성된 파일 정보 백업
                        listReturnFile.Add(newFL);
                    }
                    else if (true == itemFI.Edit)
                    {//수정이다.**********************************
                        //수정은 파일정보만 수정된다.
                        if (0 >= itemFI.idFile)
                        {//파일 정보가 없다.
                         //수정가 불가능하다.
                        }
                        else
                        {
                            //파일정보를 찾는다.
                            FileData findFl
                                = db1.FileData
                                  .Where(m => m.idFileList == itemFI.idFile)
                                  .FirstOrDefault();

                            //
                            findFl.Description = itemFI.Description;
                            //타입으로 복구
                            findFl.FileState = FileStateType.Normal;

                            //완성된 파일 정보 백업
                            listReturnFile.Add(findFl);
                        }
                    }
                    else if (true == itemFI.Delete)
                    {     //삭제다.**********************************
                        if (0 >= itemFI.idFile)
                        { //파일 정보가 없다.
                         //삭제가 불가능하다.
                        }
                        else
                        {
                            //파일정보를 찾는다.
                            FileData findFl
                                = db1.FileData
                                  .Where(m => m.idFileList == itemFI.idFile)
                                  .FirstOrDefault();

                            //삭제 타입으로 변경
                            findFl.FileState = FileStateType.DeleteReservation;


                            //완성된 파일 정보 백업
                            listReturnFile.Add(findFl);
                        }
                    }
                }//end foreach (FileInfoModel itemFI in listFileInfo)

                //DB에 적용
                db1.SaveChanges();
            }//end using db1

            return(listReturnFile.ToArray());
        }//end FileInDb
Beispiel #29
0
        public ActionResult <ApiResultBaseModel> AuthAdd(
            [FromForm] long nBoardId
            , [FromForm] long nUserId)
        {
            ApiResultReady rrResult = new ApiResultReady(this);

            DateTime dtNow = DateTime.Now;


            //유저 정보 추출
            ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims);
            //이 유저가 해당 관리 등급이 있는지 확인한다.
            ManagementClassCheckType typePC
                = GlobalStatic.MgtA.MgtClassCheck(cm.id_int
                                                  , ManagementClassType.Admin);


            if (typePC == ManagementClassCheckType.Ok)
            {
                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    //게시판 찾기
                    Board findBoard
                        = db1.Board
                          .Where(m => m.idBoard == nBoardId)
                          .FirstOrDefault();

                    //유저 찾기
                    User findUser
                        = db1.User
                          .Where(m => m.idUser == nUserId)
                          .FirstOrDefault();

                    //이미 권한을 가지고 있는지 확인
                    BoardAuthority findBA
                        = db1.BoardAuthority
                          .Where(m => m.idBoard == nBoardId &&
                                 m.idUser == nUserId)
                          .FirstOrDefault();


                    //게시판 있는지 확인
                    if ("0" == rrResult.InfoCode)
                    {
                        if (null == findBoard)
                        {
                            //게시판을 찾지 못했다.
                            rrResult.InfoCode = "-1";
                            rrResult.Message  = "게시판을 찾을 수 없습니다.";
                        }
                    }


                    if ("0" == rrResult.InfoCode)
                    {
                        if (null == findUser)
                        {
                            //유저를 찾지 못했다.
                            rrResult.InfoCode = "-2";
                            rrResult.Message  = "유저를 찾을 수 없습다.";
                        }
                    }

                    if ("0" == rrResult.InfoCode)
                    {
                        if (null != findBA)
                        {
                            //이미 권한을 가지고 있다.
                            rrResult.InfoCode = "-3";
                            rrResult.Message  = "이미 권한을 가지고 있습니다.";
                        }
                    }


                    if ("0" == rrResult.InfoCode)
                    {
                        //유저 정보
                        UserInfo findUI
                            = db1.UserInfo
                              .Where(m => m.idUser == nUserId)
                              .FirstOrDefault();

                        //추가할 권한 정보
                        BoardAuthority newBA = new BoardAuthority();
                        newBA.idBoard = findBoard.idBoard;
                        newBA.idUser  = findUI.idUser;
                        //게시판의 기본권을 먼저 준다.
                        newBA.Authority = findBoard.AuthorityDefault;
                        newBA.AuthState = BoardAuthorityStateType.Use;
                        newBA.Memo      = string.Empty;
                        newBA.EditDate  = dtNow;

                        db1.BoardAuthority.Add(newBA);
                        db1.SaveChanges();
                    }
                } //end using db1
            }     //end typePC


            return(rrResult.ToResult());
        }