コード例 #1
0
        public int RemoveUserRequestEmail(Entities.UserRequest request)
        {
            RemoveUserRequest(request);
            string subject     = string.Format(JSSEConstants.ACCESS_DENY_TEXT, request.Group.GroupName);
            var    ccUsers     = string.Empty;
            var    ownerGroups = GetGroupsByLevel(2, request.Group.Org_Id, 0);

            if (ownerGroups.Count > 0)
            {
                int groupId    = ownerGroups.FirstOrDefault().Group_ID;
                var ccUserList = GetGroupUsers(groupId).Select(x => x.User.Email);
                ccUsers = string.Join(",", ccUserList.ToArray());
            }
            else
            {
                string userName = request.User.User_ID;
                ccUsers = GetUserInfo(userName).Email;
            }
            StringBuilder sbBody = new StringBuilder();

            sbBody.AppendLine("Access has been DENIED to JSSE Group: " + request.Group.GroupName + ".");
            sbBody.Append("<br/>");
            sbBody.AppendLine(@"<b>Request Sent by: </b>");
            sbBody.Append(request.User.FullName);
            sbBody.Append("<br/>");
            sbBody.AppendLine(@"<b>Denied Access to: </b>");
            sbBody.Append(request.Group.GroupName + " Group");
            SendEmailNotification(sbBody.ToString(), request.User.Email, ccUsers, subject);
            return(1);
        }
コード例 #2
0
        /* Deactivate Security Request to add User to group */
        public int DeActivateUserRequest(Entities.UserRequest request)
        {
            int result = 0;

            result = JSSESecurityManager.DeActiveUserRequest(request.Request_ID);
            return(result);
        }
コード例 #3
0
        /* Add Security Request to add User to group */
        public int AddUserRequest(Entities.UserRequest request)
        {
            int result = 0;
            T_JSSE_Security_Request dbJSSE = new T_JSSE_Security_Request();

            dbJSSE.Requested_By = request.Requested_By;
            dbJSSE.Description  = request.Description;
            dbJSSE.CreatedBy    = request.Requested_By;
            dbJSSE.CreatedDate  = DateTime.Now;
            dbJSSE.Active       = true;
            result = JSSESecurityManager.AddUserRequest(dbJSSE, request.Org_Id);
            return(result);
        }
コード例 #4
0
        public int AddUserToGroupByRequest(Entities.UserRequest request)
        {
            Entities.UserGroup group = new Entities.UserGroup();
            group.User  = request.User;
            group.Group = request.Group;
            //Add User to Group from Request
            try
            {
                JSSESecurityManager.AddUser(group);
            }
            catch (Exception ex)
            {
                //Check Data base Error to see if User Already member of Group, Then Remove Request
                if (ex.Message.IndexOf(JSSEConstants.USER_ALREADY_IN_GROUP) > 0)
                {
                    RemoveUserRequest(request);
                }
                throw ex;
            };
            RemoveUserRequest(request);
            var ccUsers = string.Empty;
            //Get Groups By Level Id (1 for admin 2 for Owner and 3 for user of JSSE)
            var ownerGroups = GetGroupsByLevel(2, request.Group.Org_Id, 0);

            //If Owner Group Exists, then Get Users Owner List in to Variable for Email
            if (ownerGroups.Count > 0)
            {
                int groupId    = ownerGroups.FirstOrDefault().Group_ID;
                var ccUserList = GetGroupUsers(groupId).Select(x => x.User.Email);
                ccUsers = string.Join(",", ccUserList.ToArray());
            }
            else
            {
                string userName = request.User.User_ID;
                ccUsers = GetUserInfo(userName).Email;
            }
            //Send Email notification to User and CC Owner
            string        subject = string.Format(JSSEConstants.ACCESS_GRANT_TEXT, request.Group.GroupName);// "Access has been GRANTED to " + request.Group.GroupName + " Group.";
            StringBuilder sbBody  = new StringBuilder();

            sbBody.AppendLine(subject);
            sbBody.Append("<br/>");
            sbBody.AppendLine(@"<b>Request Sent by: </b>");
            sbBody.Append(request.User.FullName);
            sbBody.Append("<br/>");
            sbBody.AppendLine(@"<b>Granted Access to: </b>");
            sbBody.Append(request.Group.GroupName + " Group");
            SendEmailNotification(sbBody.ToString(), request.User.Email, ccUsers, subject);
            return(1);
        }
コード例 #5
0
        /* Get Group Requests of selected security group*/
        public List <Entities.UserRequest> GetGroupRequests(int groupId)
        {
            List <Entities.UserRequest> uReqs = new List <Entities.UserRequest>();

            try
            {
                var dbRequests = JSSESecurityManager.GetGroupRequests(groupId);
                foreach (var dbReq in dbRequests)
                {
                    Entities.UserRequest uReq = new Entities.UserRequest();
                    uReq.Group               = new Entities.Group();
                    uReq.User                = new Entities.UserInfo();
                    uReq.Request_ID          = dbReq.Request_ID;
                    uReq.User.SecurityUserID = dbReq.SecurityGroup_ID;
                    uReq.User.User_ID        = dbReq.PRIMARY_WINDOWS_NT_ACCOUNT;
                    uReq.User.Emp_Id         = dbReq.Emp_No;
                    uReq.User.CompanyId      = dbReq.Company_Cd;
                    uReq.User.FirstName      = dbReq.FirstName;
                    uReq.User.LastName       = dbReq.LastName;
                    uReq.User.FullName       = dbReq.LastName + " " + dbReq.FirstName;
                    uReq.User.Email          = dbReq.EMAIL_ADDRESS_COMPANY;
                    uReq.User.MajorGroup_Id  = dbReq.User_MajorGroup_Id.ToString();
                    uReq.User.Org_Id         = dbReq.User_Org_Id.ToString();
                    uReq.User.Dept_Id        = dbReq.User_Dept_Id.ToString();
                    uReq.User.Section_Id     = dbReq.Use_Sect_Id.ToString();
                    uReq.Description         = dbReq.Description;
                    uReq.Requested_By        = dbReq.CreatedBy;
                    uReq.CreatedDate         = dbReq.CreatedDate;
                    uReq.Group.Group_ID      = dbReq.SecurityGroup_ID;
                    uReq.Group.GroupName     = dbReq.GroupName;
                    uReq.Group.MajorGroup_Id = dbReq.MajorGroup_Id;
                    uReq.Group.Org_Id        = dbReq.Org_Id;
                    uReqs.Add(uReq);
                }
            }
            catch
            {
                throw;
            }
            return(uReqs);
        }
コード例 #6
0
        public int SendRequestEmail(Entities.SecurityRequest accessRequest)
        {
            //string userName = HttpContext.Current.User.Identity.Name;
            if (accessRequest != null && !string.IsNullOrEmpty(accessRequest.UserName))
            {
                IEnumerable <string> users = new List <string>();
                var ownerGroups            = GetGroupsByLevel(2, accessRequest.Org_Id, 0);
                int addRequestResult       = 0;
                if (ownerGroups.Count > 0)
                {
                    int groupId = ownerGroups.FirstOrDefault().Group_ID;
                    users = GetGroupUsers(groupId).Select(x => x.User.Email);
                    Entities.UserRequest request = new Entities.UserRequest();
                    request.Org_Id       = accessRequest.Org_Id;
                    request.Requested_By = accessRequest.UserName;
                    request.Description  = accessRequest.EmailBody;
                    addRequestResult     = AddUserRequest(request);
                }
                else if (ownerGroups.Count <= 0 || users.Count() <= 0)
                {
                    users = GetGroupUsers(1).Select(x => x.User.Email);
                }
                string toAddressList = string.Join(",", users.ToArray());
                var    ccUser        = GetUserInfo(accessRequest.UserName);
                string subject       = "Request to add User to " + accessRequest.Org_Name + " User Group.";

                StringBuilder sbBody = new StringBuilder();
                sbBody.AppendLine("Hello, ");
                sbBody.Append("<br/><br/>");
                sbBody.AppendLine("Please provide access to create JSSE for " + accessRequest.Org_Name + " User Group.");
                sbBody.Append("<br/><br/>");
                sbBody.AppendLine(@"<b>Request Sent by: </b>");
                sbBody.Append(ccUser.FullName);
                sbBody.Append("<br/><br/>");
                sbBody.AppendLine(@"<b>Add to: </b>");
                sbBody.Append(accessRequest.Org_Name + " User Group");
                sbBody.Append("<br/><br/>");
                sbBody.AppendLine(@"<b>Message:</b> ");
                sbBody.Append(accessRequest.EmailBody);
                sbBody.Append("<br/><br/>");
                if (addRequestResult == -2)
                {
                    sbBody.Append("User Group does not exist for Selected Organization. Email has been sent to Administrator to Create User Group.");
                    sbBody.Append("<br/><br/>");
                }
                else if (addRequestResult == -1)
                {
                    sbBody.Append("Request had already been created by you earlier, Selected Organization. Email has been sent.");
                    sbBody.Append("<br/><br/>");
                }
                SendEmailNotification(sbBody.ToString(), toAddressList, ccUser.Email, subject);
                if (addRequestResult == -2)
                {
                    throw new Exception(JSSEConstants.USER_GROUP_NOT_EXIST_ADMIN_EMAILED);
                }
                return(1);
            }
            else
            {
                throw new Exception(JSSEConstants.USER_NAME_CANNOT_BLANK);
            }
        }